ISIS-2444: regen projdoc

ISIS-2444: regen projdoc

= System Overview
: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 agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

These tables summarize all Maven artifacts available with _Apache Isis_.

== App

[plantuml,App,svg]
----
@startuml(id=App)
title App - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "App\n[Software System]" {
  rectangle "==Apache Isis Starter Parent\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (App)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Starter Parent
[source,yaml]
----
Group: org.apache.isis.app
Artifact: isis-app-starter-parent
Type: pom
Directory: /starters
----
|Parent pom providing dependency and plugin management for Apache Isis applications
built with Maven.  Builds on top of spring-boot-starter-parent.
|===

== Mavendeps

[plantuml,Mavendeps,svg]
----
@startuml(id=Mavendeps)
title Mavendeps - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<9>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Mavendeps\n[Software System]" {
  rectangle "==Apache Isis Maven Deps\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Maven Deps - BDD Integ Spec\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
  rectangle "==Apache Isis Maven Deps - Integration Testing\n<size:10>[Container: packaging: pom]</size>" <<4>> as 4
  rectangle "==Apache Isis Maven Deps - JDK11\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
  rectangle "==Apache Isis Maven Deps - JDO\n<size:10>[Container: packaging: pom]</size>" <<6>> as 6
  rectangle "==Apache Isis Maven Deps - JPA\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
  rectangle "==Apache Isis Maven Deps - Testing\n<size:10>[Container: packaging: pom]</size>" <<8>> as 8
  rectangle "==Apache Isis Maven Deps - Webapp\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 7 : ""
2 .[#707070].> 8 : ""
2 .[#707070].> 9 : ""
@enduml
----
.Projects/Modules (Mavendeps)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Maven Deps
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps
Type: pom
Directory: /mavendeps
----
|Collection of Apache Isis Maven Dependency Bundles.

|Apache Isis Maven Deps - BDD Integ Spec
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps-integspecs
Type: pom
Directory: /mavendeps/integspecs
----
|Defines a module that can be used as a single dependency for BDD (Cucumber) specs as integration tests.

.Dependencies
****
org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-specsupport-applib:jar:<managed> +
****

|Apache Isis Maven Deps - Integration Testing
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps-integtests
Type: pom
Directory: /mavendeps/integtests
----
|Defines a module that can be used as a single dependency for integration tests.

.Dependencies
****
org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed> +
****

|Apache Isis Maven Deps - JDK11
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps-jdk11
Type: pom
Directory: /mavendeps/jdk11
----
|Defines a module to bring in dependencies that were part of JDK 8 but
had been removed with JDK 11+. These dependencies are activated when the
consuming project is built with JDK 11 or higher.

|Apache Isis Maven Deps - JDO
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps-jdo
Type: pom
Directory: /mavendeps/jdo
----
|Defines a module that provides the default JDO persistence layer integration
for running an Apache Isis webapp (Wicket, Restful Objects and Shiro security).

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-schema:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-datanucleus:jar:<managed> +
****

|Apache Isis Maven Deps - JPA
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps-jpa
Type: pom
Directory: /mavendeps/jpa
----
|Defines a module that provides the default JPA persistence layer integration
for running an Apache Isis webapp (Wicket, Restful Objects and Shiro security).

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-schema:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jpa-eclipselink:jar:<managed> +
****

|Apache Isis Maven Deps - Testing
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps-unittests
Type: pom
Directory: /mavendeps/unittests
----
|Defines a module that can be used as a single dependency for a set of common testing libraries.

.Dependencies
****
org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed> +
****

|Apache Isis Maven Deps - Webapp
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps-webapp
Type: pom
Directory: /mavendeps/webapp
----
|Defines a module that can be almost used as a single dependency for running
an Apache Isis webapp (Wicket, Restful Objects and Shiro security).

Note: Also requires a persistence provider.

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.core:isis-core-security:jar:<managed> +
org.apache.isis.core:isis-schema:jar:<managed> +
org.apache.isis.security:isis-security-bypass:jar:<managed> +
org.apache.isis.security:isis-security-keycloak:jar:<managed> +
org.apache.isis.security:isis-security-shiro:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-jaxrsresteasy4:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-viewer:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-viewer:jar:<managed> +
org.springframework.boot:spring-boot-starter-tomcat:jar:<managed> +
org.springframework.boot:spring-boot-starter-web:jar:<managed> +
****
|===

== Testing

[plantuml,Testing,svg]
----
@startuml(id=Testing)
title Testing - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<11>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<12>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<13>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<14>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<15>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<16>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<17>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<18>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<9>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<10>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Testing\n[Software System]" {
  rectangle "==Apache Isis Testing\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Tst - FakeData (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Tst - FakeData (fixtures)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Tst - FakeData (integ tests)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Tst - FakeData (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
  rectangle "==Apache Isis Tst - Fixtures (applib)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
  rectangle "==Apache Isis Tst - Fixtures (parent)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
  rectangle "==Apache Isis Tst - H2 Console (parent)\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
  rectangle "==Apache Isis Tst - H2 Console (ui)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
  rectangle "==Apache Isis Tst - HSQLDB Manager\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
  rectangle "==Apache Isis Tst - HSQLDB Manager (parent)\n<size:10>[Container: packaging: pom]</size>" <<11>> as 11
  rectangle "==Apache Isis Tst - Integ Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<14>> as 14
  rectangle "==Apache Isis Tst - Integ Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<13>> as 13
  rectangle "==Apache Isis Tst - Spec/Cucumber (applib)\n<size:10>[Container: packaging: jar]</size>" <<16>> as 16
  rectangle "==Apache Isis Tst - Spec/Cucumber (parent)\n<size:10>[Container: packaging: pom]</size>" <<15>> as 15
  rectangle "==Apache Isis Tst - Unit Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<18>> as 18
  rectangle "==Apache Isis Tst - Unit Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<17>> as 17
}
2 .[#707070].> 3 : ""
2 .[#707070].> 7 : ""
2 .[#707070].> 9 : ""
2 .[#707070].> 11 : ""
2 .[#707070].> 13 : ""
2 .[#707070].> 15 : ""
2 .[#707070].> 17 : ""
3 .[#707070].> 4 : ""
3 .[#707070].> 5 : ""
3 .[#707070].> 6 : ""
7 .[#707070].> 8 : ""
9 .[#707070].> 10 : ""
11 .[#707070].> 12 : ""
13 .[#707070].> 14 : ""
15 .[#707070].> 16 : ""
17 .[#707070].> 18 : ""
@enduml
----
.Projects/Modules (Testing)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Testing
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing
Type: pom
Directory: /testing
----
|A library of utilities, mini-frameworks and tools for prototyping and testing Apache Isis applications.

|Apache Isis Tst - FakeData (parent)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-fakedata
Type: pom
Directory: /testing/fakedata
----
|A module providing a domain service to generate fake random data
for use in unit tests or integration tests.

|Apache Isis Tst - FakeData (applib)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-fakedata-applib
Type: jar
Directory: /testing/fakedata/applib
----
|.Components
****
o.a.i.testing.fakedata.applib.services.FakeDataService +
****

.Dependencies
****
com.github.javafaker:javafaker:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:testing:index/fakedata/applib/IsisModuleTestingFakeDataApplib.adoc[IsisModuleTestingFakeDataApplib], xref:refguide:testing:index/fakedata/applib/services/AbstractRandomValueGenerator.adoc[AbstractRandomValueGenerator], xref:refguide:testing:index/fakedata/applib/services/Addresses.adoc[Addresses], xref:refguide:testing:index/fakedata/applib/services/BigDecimals.adoc[BigDecimals], xref:refguide:testing:index/fakedata/applib/services/BigIntegers.adoc[BigIntegers], xref:refguide:testing:index/fakedata/applib/services/Books.adoc[Books], xref:refguide:testing:index/fakedata/applib/services/Booleans.adoc[Booleans], xref:refguide:testing:index/fakedata/applib/services/Bytes.adoc[Bytes], xref:refguide:testing:index/fakedata/applib/services/Chars.adoc[Chars], xref:refguide:testing:index/fakedata/applib/services/Collections.adoc[Collections], xref:refguide:testing:index/fakedata/applib/services/Comms.adoc[Comms], xref:refguide:testing:index/fakedata/applib/services/CreditCards.adoc[CreditCards], xref:refguide:testing:index/fakedata/applib/services/Doubles.adoc[Doubles], xref:refguide:testing:index/fakedata/applib/services/Enums.adoc[Enums], xref:refguide:testing:index/fakedata/applib/services/FakeDataService.adoc[FakeDataService], xref:refguide:testing:index/fakedata/applib/services/Floats.adoc[Floats], xref:refguide:testing:index/fakedata/applib/services/Integers.adoc[Integers], xref:refguide:testing:index/fakedata/applib/services/IsisBlobs.adoc[IsisBlobs], xref:refguide:testing:index/fakedata/applib/services/IsisClobs.adoc[IsisClobs], xref:refguide:testing:index/fakedata/applib/services/IsisPasswords.adoc[IsisPasswords], xref:refguide:testing:index/fakedata/applib/services/J8DateTimes.adoc[J8DateTimes], xref:refguide:testing:index/fakedata/applib/services/J8LocalDates.adoc[J8LocalDates], xref:refguide:testing:index/fakedata/applib/services/J8Periods.adoc[J8Periods], xref:refguide:testing:index/fakedata/applib/services/JavaSqlDates.adoc[JavaSqlDates], xref:refguide:testing:index/fakedata/applib/services/JavaSqlTimestamps.adoc[JavaSqlTimestamps], xref:refguide:testing:index/fakedata/applib/services/JavaUtilDates.adoc[JavaUtilDates], xref:refguide:testing:index/fakedata/applib/services/JodaDateTimes.adoc[JodaDateTimes], xref:refguide:testing:index/fakedata/applib/services/JodaLocalDates.adoc[JodaLocalDates], xref:refguide:testing:index/fakedata/applib/services/JodaPeriods.adoc[JodaPeriods], xref:refguide:testing:index/fakedata/applib/services/Longs.adoc[Longs], xref:refguide:testing:index/fakedata/applib/services/Lorem.adoc[Lorem], xref:refguide:testing:index/fakedata/applib/services/Names.adoc[Names], xref:refguide:testing:index/fakedata/applib/services/Shorts.adoc[Shorts], xref:refguide:testing:index/fakedata/applib/services/Strings.adoc[Strings], xref:refguide:testing:index/fakedata/applib/services/Urls.adoc[Urls], xref:refguide:testing:index/fakedata/applib/services/Uuids.adoc[Uuids]
****

|Apache Isis Tst - FakeData (fixtures)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-fakedata-fixtures
Type: jar
Directory: /testing/fakedata/fixtures
----
|.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Tst - FakeData (integ tests)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-fakedata-integtests
Type: jar
Directory: /testing/fakedata/integtests
----
|.Dependencies
****
org.apache.isis.mavendeps:isis-mavendeps-integtests:pom:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-datanucleus:jar:<managed> +
org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-fakedata-fixtures:jar:<managed> +
****

|Apache Isis Tst - Fixtures (parent)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-fixtures
Type: pom
Directory: /testing/fixtures
----
|Library to initialize the system under test, either for integration testing or for prototyping.

|Apache Isis Tst - Fixtures (applib)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-fixtures-applib
Type: jar
Directory: /testing/fixtures/applib
----
|.Components
****
o.a.i.testing.fixtures.applib.fixturescripts.ExecutionParametersService +
o.a.i.testing.fixtures.applib.modules.ModuleWithFixturesService +
o.a.i.testing.fixtures.applib.queryresultscache.QueryResultsCacheControlDefault +
o.a.i.testing.fixtures.applib.services.FixturesLifecycleService +
****

.Dependencies
****
joda-time:joda-time:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed> +
org.apache.isis.subdomains:isis-subdomains-spring-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed> +
****

|Apache Isis Tst - H2 Console (parent)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-h2console
Type: pom
Directory: /testing/h2console
----
|Menu and configuration to open up H2 Console

|Apache Isis Tst - H2 Console (ui)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-h2console-ui
Type: jar
Directory: /testing/h2console/ui
----
|.Components
****
o.a.i.testing.h2console.ui.webmodule.WebModuleH2Console +
****

.Dependencies
****
com.h2database:h2:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:testing:index/h2console/ui/IsisModuleTestingH2ConsoleUi.adoc[IsisModuleTestingH2ConsoleUi], xref:refguide:testing:index/h2console/ui/services/H2ManagerMenu.adoc[H2ManagerMenu], xref:refguide:testing:index/h2console/ui/webmodule/WebModuleH2Console.adoc[WebModuleH2Console]
****

|Apache Isis Tst - HSQLDB Manager (parent)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-hsqldbmgr
Type: pom
Directory: /testing/hsqldbmgr
----
|Menu and configuration to open up HSQLDB Manager

|Apache Isis Tst - HSQLDB Manager
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-hsqldbmgr-ui
Type: jar
Directory: /testing/hsqldbmgr/ui
----
|.Dependencies
****
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.hsqldb:hsqldb:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/hsqldbmgr/dom/IsisModuleExtHsqldbMgr.adoc[IsisModuleExtHsqldbMgr], xref:refguide:extensions:index/hsqldbmgr/dom/services/HsqlDbManagerMenu.adoc[HsqlDbManagerMenu]
****

|Apache Isis Tst - Integ Test Support (parent)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-integtestsupport
Type: pom
Directory: /testing/integtestsupport
----
|Support for writing integ tests in JUnit 5; should be added as a dependency with scope=test only

|Apache Isis Tst - Integ Test Support (applib)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-integtestsupport-applib
Type: jar
Directory: /testing/integtestsupport/applib
----
|.Components
****
o.a.i.testing.integtestsupport.applib.IsisIntegrationTestAbstract$InteractionSupport +
****

.Dependencies
****
com.approvaltests:approvaltests:jar:<managed> +
com.h2database:h2:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.security:isis-security-bypass:jar:<managed> +
org.hamcrest:hamcrest-library:jar:<managed> +
org.hsqldb:hsqldb:jar:<managed> +
org.slf4j:slf4j-api:jar:${slf4j-api.version} +
org.springframework:spring-test:jar:<managed> +
org.springframework.boot:spring-boot-starter-test:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:testing:index/integtestsupport/applib/ExceptionRecognizerTranslate.adoc[ExceptionRecognizerTranslate], xref:refguide:testing:index/integtestsupport/applib/IsisIntegrationTestAbstract.adoc[IsisIntegrationTestAbstract], xref:refguide:testing:index/integtestsupport/applib/IsisInteractionHandler.adoc[IsisInteractionHandler], xref:refguide:testing:index/integtestsupport/applib/ThrowableMatchers.adoc[ThrowableMatchers], xref:refguide:testing:index/integtestsupport/applib/swagger/SwaggerExporter.adoc[SwaggerExporter], xref:refguide:testing:index/integtestsupport/applib/validate/DomainModelValidator.adoc[DomainModelValidator]
****

|Apache Isis Tst - Spec/Cucumber (parent)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-specsupport
Type: pom
Directory: /testing/specsupport
----
|Allows Cucumber to be used to write BDD-style specifications, generally as an alternative to integration tests.

|Apache Isis Tst - Spec/Cucumber (applib)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-specsupport-applib
Type: jar
Directory: /testing/specsupport/applib
----
|.Dependencies
****
io.cucumber:cucumber-java:jar:<managed> +
io.cucumber:cucumber-junit-platform-engine:jar:<managed> +
io.cucumber:cucumber-spring:jar:<managed> +
org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed> +
org.junit.jupiter:junit-jupiter-api:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:testing:index/specsupport/applib/IsisModuleTestingSpecSupportApplib.adoc[IsisModuleTestingSpecSupportApplib], xref:refguide:testing:index/specsupport/applib/integration/ObjectFactoryForIntegration.adoc[ObjectFactoryForIntegration], xref:refguide:testing:index/specsupport/applib/specs/V.adoc[V]
****

|Apache Isis Tst - Unit Test Support (parent)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-unittestsupport
Type: pom
Directory: /testing/unittestsupport
----
|A module providing test utilities for unit testing of domain modules

|Apache Isis Tst - Unit Test Support (applib)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-unittestsupport-applib
Type: jar
Directory: /testing/unittestsupport/applib
----
|.Dependencies
****
com.approvaltests:approvaltests:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-codegen-bytebuddy:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
org.jmock:jmock:jar:<managed> +
org.jmock:jmock-junit4:jar:<managed> +
org.picocontainer:picocontainer:jar:<managed> +
org.slf4j:slf4j-api:jar:<managed> +
org.springframework:spring-test:jar:<managed> +
org.springframework.boot:spring-boot-starter-test:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:testing:index/unittestsupport/applib/IsisModuleTestingUnitTestSupportApplib.adoc[IsisModuleTestingUnitTestSupportApplib], xref:refguide:testing:index/unittestsupport/applib/bean/AbstractBeanPropertiesTest.adoc[AbstractBeanPropertiesTest], xref:refguide:testing:index/unittestsupport/applib/bean/FixtureDatumFactoriesForAnyPojo.adoc[FixtureDatumFactoriesForAnyPojo], xref:refguide:testing:index/unittestsupport/applib/bean/FixtureDatumFactoriesForApplib.adoc[FixtureDatumFactoriesForApplib], xref:refguide:testing:index/unittestsupport/applib/bean/FixtureDatumFactoriesForJoda.adoc[FixtureDatumFactoriesForJoda], xref:refguide:testing:index/unittestsupport/applib/bean/FixtureDatumFactoriesForTime.adoc[FixtureDatumFactoriesForTime], xref:refguide:testing:index/unittestsupport/applib/bean/PojoTester.adoc[PojoTester], xref:refguide:testing:index/unittestsupport/applib/core/AbstractApplyToAllContractTest.adoc[AbstractApplyToAllContractTest], xref:refguide:testing:index/unittestsupport/applib/core/bidir/BidirectionalRelationshipContractTestAbstract.adoc[BidirectionalRelationshipContractTestAbstract], xref:refguide:testing:index/unittestsupport/applib/core/bidir/Instantiator.adoc[Instantiator], xref:refguide:testing:index/unittestsupport/applib/core/bidir/InstantiatorSimple.adoc[InstantiatorSimple], xref:refguide:testing:index/unittestsupport/applib/core/bidir/Instantiators.adoc[Instantiators], xref:refguide:testing:index/unittestsupport/applib/core/comparable/ComparableContractTest_compareTo.adoc[ComparableContractTest_compareTo], xref:refguide:testing:index/unittestsupport/applib/core/comparable/ComparableContractTester.adoc[ComparableContractTester], xref:refguide:testing:index/unittestsupport/applib/core/files/Files.adoc[Files], xref:refguide:testing:index/unittestsupport/applib/core/jaxb/JaxbMatchers.adoc[JaxbMatchers], xref:refguide:testing:index/unittestsupport/applib/core/jmocking/Imposterisers.adoc[Imposterisers], xref:refguide:testing:index/unittestsupport/applib/core/jmocking/InjectIntoJMockAction.adoc[InjectIntoJMockAction], xref:refguide:testing:index/unittestsupport/applib/core/jmocking/IsisActions.adoc[IsisActions], xref:refguide:testing:index/unittestsupport/applib/core/jmocking/JMockActions.adoc[JMockActions], xref:refguide:testing:index/unittestsupport/applib/core/jmocking/JUnitRuleMockery2.adoc[JUnitRuleMockery2], xref:refguide:testing:index/unittestsupport/applib/core/jmocking/PostponedAction.adoc[PostponedAction], xref:refguide:testing:index/unittestsupport/applib/core/soap/SoapEndpointPublishingRule.adoc[SoapEndpointPublishingRule], xref:refguide:testing:index/unittestsupport/applib/core/soap/SoapEndpointSpec.adoc[SoapEndpointSpec], xref:refguide:testing:index/unittestsupport/applib/core/sortedsets/SortedSetsContractTestAbstract.adoc[SortedSetsContractTestAbstract], xref:refguide:testing:index/unittestsupport/applib/core/streams/NullPrintStream.adoc[NullPrintStream], xref:refguide:testing:index/unittestsupport/applib/core/utils/CollectUtils.adoc[CollectUtils], xref:refguide:testing:index/unittestsupport/applib/core/utils/IndentPrinter.adoc[IndentPrinter], xref:refguide:testing:index/unittestsupport/applib/core/utils/ReflectUtils.adoc[ReflectUtils], xref:refguide:testing:index/unittestsupport/applib/core/utils/StringUtils.adoc[StringUtils], xref:refguide:testing:index/unittestsupport/applib/core/value/ValueTypeContractTestAbstract.adoc[ValueTypeContractTestAbstract], xref:refguide:testing:index/unittestsupport/applib/dom/assertions/Asserting.adoc[Asserting], xref:refguide:testing:index/unittestsupport/applib/dom/matchers/IsisMatchers.adoc[IsisMatchers], xref:refguide:testing:index/unittestsupport/applib/dom/privatecons/PrivateConstructorTester.adoc[PrivateConstructorTester], xref:refguide:testing:index/unittestsupport/applib/dom/reflect/ReflectUtils.adoc[ReflectUtils], xref:refguide:testing:index/unittestsupport/applib/dom/repo/FinderInteraction.adoc[FinderInteraction]
****
|===

== Examples

[plantuml,Examples,svg]
----
@startuml(id=Examples)
title Examples - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Examples\n[Software System]" {
  rectangle "==Demo - Domain\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Demo - JavaFX\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Demo - Parent\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Demo - Vaadin\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Demo - Web\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Demo - Wicket\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 7 : ""
@enduml
----
.Projects/Modules (Examples)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Demo - Parent
[source,yaml]
----
Group: org.apache.isis.examples.apps
Artifact: demo-parent
Type: pom
Directory: /examples/demo
----
|.Dependencies
****
com.h2database:h2:jar:<managed> +
org.apache.isis.extensions:isis-extensions-exceldownload-ui:jar:<managed> +
org.apache.isis.extensions:isis-extensions-modelannotation:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-encryption-jbcrypt:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-persistence-jdo:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-shiro-realm:jar:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-persistence-jdo-dn5:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-persistence-jdo-dn5:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-sse-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

|Demo - Domain
[source,yaml]
----
Group: org.apache.isis.examples.apps
Artifact: demo-domain
Type: jar
Directory: /examples/demo/domain
----
|.Components
****
demoapp.dom.AppConfiguration +
demoapp.dom._infra.DefaultTitleProvider +
demoapp.dom._infra.LibraryPreloadingService +
demoapp.dom._infra.fixtures.DemoFixtureScriptSpecificationProvider +
demoapp.dom._infra.resources.AsciiDocConverterService +
demoapp.dom._infra.resources.AsciiDocReaderService +
demoapp.dom._infra.resources.MarkdownReaderService +
demoapp.dom._infra.resources.MarkupReaderService +
demoapp.dom._infra.resources.MarkupVariableResolverService +
demoapp.dom._infra.resources.ResourceReaderService +
demoapp.dom._infra.samples.NameSamples +
demoapp.dom._infra.urlencoding.UrlEncodingServiceNaiveInMemory +
demoapp.dom.domain._changes.EntityChangesSubscriberToCaptureChangesInMemory +
demoapp.dom.domain._commands.ExposePersistedCommands$TableColumnOrderDefault +
demoapp.dom.domain._interactions.ExecutionListenerToCaptureInteractionsInMemory +
demoapp.dom.domain.actions.Action.commandPublishing.ActionCommandPublishingJdoEntities +
demoapp.dom.domain.actions.Action.commandPublishing.ActionCommandPublishingJdoSeedService +
demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingJdoEntities +
demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingJdoSeedService +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.disabled.DomainObjectEntityChangePublishingDisabledJdoEntities +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.disabled.DomainObjectEntityChangePublishingDisabledJdoSeedService +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.enabled.DomainObjectAuditingEnabledJdoEntities +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.enabled.DomainObjectAuditingEnabledJdoSeedService +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnot.enabled.DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdoEntities +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnot.enabled.DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdoSeedService +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnotOverridden.enabled.DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdoEntities +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnotOverridden.enabled.DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdoSeedService +
demoapp.dom.domain.objects.DomainObject.nature.viewmodels.jaxbrefentity.ChildJdoEntities +
demoapp.dom.domain.objects.DomainObject.nature.viewmodels.jaxbrefentity.seed.ChildJdoSeedService +
demoapp.dom.domain.objects.other.embedded.NumberConstantJdoRepository +
demoapp.dom.domain.properties.Property.commandPublishing.PropertyCommandPublishingJdoEntities +
demoapp.dom.domain.properties.Property.commandPublishing.PropertyCommandPublishingJdoSeedService +
demoapp.dom.domain.properties.Property.executionPublishing.PropertyExecutionPublishingJdoEntities +
demoapp.dom.domain.properties.Property.executionPublishing.PropertyExecutionPublishingJdoSeedService +
demoapp.dom.domain.properties.Property.projecting.jdo.PropertyProjectingChildJdoEntities +
demoapp.dom.domain.properties.Property.projecting.jdo.PropertyProjectingChildJdoSeedService +
demoapp.dom.domain.properties.PropertyLayout.navigable.FileTreeNodeService +
demoapp.dom.domain.properties.PropertyLayout.repainting.PdfJsViewerAdvisorFallback +
demoapp.dom.featured.customui.geocoding.GeoapifyClient +
demoapp.dom.services.core.errorreportingservice.ErrorReportingServiceDemoImplementation +
demoapp.dom.services.core.eventbusservice.EventLogEntryJdoRepository +
demoapp.dom.services.core.eventbusservice.EventSubscriberDemoImplementation +
demoapp.dom.services.core.wrapperFactory.WrapperFactoryJdoEntities +
demoapp.dom.services.core.wrapperFactory.WrapperFactoryJdoSeedService +
demoapp.dom.services.extensions.secman.apptenancy.ApplicationTenancyEvaluatorForDemo +
demoapp.dom.services.extensions.secman.apptenancy.entities.TenantedJdoEntities +
demoapp.dom.services.extensions.secman.apptenancy.entities.seed.TenantedJdoSeedService +
demoapp.dom.types.isis.blobs.jdo.IsisBlobJdoEntities +
demoapp.dom.types.isis.blobs.jdo.IsisBlobJdoSeedService +
demoapp.dom.types.isis.blobs.samples.IsisBlobsSamples +
demoapp.dom.types.isis.clobs.jdo.IsisClobJdoEntities +
demoapp.dom.types.isis.clobs.jdo.IsisClobJdoSeedService +
demoapp.dom.types.isis.clobs.samples.IsisClobsSamples +
demoapp.dom.types.isis.localresourcepaths.jdo.IsisLocalResourcePathJdoEntities +
demoapp.dom.types.isis.localresourcepaths.jdo.IsisLocalResourcePathJdoSeedService +
demoapp.dom.types.isis.localresourcepaths.samples.IsisLocalResourcePathsSamples +
demoapp.dom.types.isis.markups.jdo.IsisMarkupJdoEntities +
demoapp.dom.types.isis.markups.jdo.IsisMarkupJdoSeedService +
demoapp.dom.types.isis.markups.samples.IsisMarkupSamples +
demoapp.dom.types.isis.passwords.jdo.IsisPasswordJdoEntities +
demoapp.dom.types.isis.passwords.jdo.IsisPasswordJdoSeedService +
demoapp.dom.types.isis.passwords.samples.IsisPasswordsSamples +
demoapp.dom.types.isisext.asciidocs.jdo.IsisAsciiDocJdoEntities +
demoapp.dom.types.isisext.asciidocs.jdo.IsisAsciiDocJdoSeedService +
demoapp.dom.types.isisext.asciidocs.samples.IsisAsciiDocSamples +
demoapp.dom.types.isisext.markdowns.jdo.IsisMarkdownJdoEntities +
demoapp.dom.types.isisext.markdowns.jdo.IsisMarkdownJdoSeedService +
demoapp.dom.types.isisext.markdowns.samples.IsisMarkdownSamples +
demoapp.dom.types.javaawt.images.jdo.JavaAwtImageJdoEntities +
demoapp.dom.types.javaawt.images.jdo.JavaAwtImageJdoSeedService +
demoapp.dom.types.javaawt.images.samples.JavaAwtImageService +
demoapp.dom.types.javaawt.images.samples.JavaAwtImagesSamples +
demoapp.dom.types.javalang.booleans.jdo.WrapperBooleanJdoEntities +
demoapp.dom.types.javalang.booleans.jdo.WrapperBooleanJdoSeedService +
demoapp.dom.types.javalang.booleans.samples.WrapperBooleanSamples +
demoapp.dom.types.javalang.bytes.jdo.WrapperByteJdoEntities +
demoapp.dom.types.javalang.bytes.jdo.WrapperByteJdoSeedService +
demoapp.dom.types.javalang.bytes.samples.WrapperByteSamples +
demoapp.dom.types.javalang.characters.jdo.WrapperCharacterJdoEntities +
demoapp.dom.types.javalang.characters.jdo.WrapperCharacterJdoSeedService +
demoapp.dom.types.javalang.characters.samples.WrapperCharacterSamples +
demoapp.dom.types.javalang.doubles.jdo.WrapperDoubleJdoEntities +
demoapp.dom.types.javalang.doubles.jdo.WrapperDoubleJdoSeedService +
demoapp.dom.types.javalang.doubles.samples.WrapperDoubleSamples +
demoapp.dom.types.javalang.floats.jdo.WrapperFloatJdoEntities +
demoapp.dom.types.javalang.floats.jdo.WrapperFloatJdoSeedService +
demoapp.dom.types.javalang.floats.samples.WrapperFloatSamples +
demoapp.dom.types.javalang.integers.jdo.WrapperIntegerJdoEntities +
demoapp.dom.types.javalang.integers.jdo.WrapperIntegerJdoSeedService +
demoapp.dom.types.javalang.integers.samples.WrapperIntegerSamples +
demoapp.dom.types.javalang.longs.jdo.WrapperLongJdoEntities +
demoapp.dom.types.javalang.longs.jdo.WrapperLongJdoSeedService +
demoapp.dom.types.javalang.longs.samples.WrapperLongSamples +
demoapp.dom.types.javalang.shorts.jdo.WrapperShortJdoEntities +
demoapp.dom.types.javalang.shorts.jdo.WrapperShortJdoSeedService +
demoapp.dom.types.javalang.shorts.samples.WrapperShortSamples +
demoapp.dom.types.javalang.strings.jdo.JavaLangStringJdoEntities +
demoapp.dom.types.javalang.strings.jdo.JavaLangStringJdoSeedService +
demoapp.dom.types.javalang.strings.samples.JavaLangStringSamples +
demoapp.dom.types.javamath.bigdecimals.jdo.JavaMathBigDecimalJdoEntities +
demoapp.dom.types.javamath.bigdecimals.jdo.JavaMathBigDecimalJdoSeedService +
demoapp.dom.types.javamath.bigdecimals.samples.JavaMathBigDecimalSamples +
demoapp.dom.types.javamath.bigintegers.jdo.JavaMathBigIntegerJdoEntities +
demoapp.dom.types.javamath.bigintegers.jdo.JavaMathBigIntegerJdoSeedService +
demoapp.dom.types.javamath.bigintegers.samples.JavaMathBigIntegerSamples +
demoapp.dom.types.javanet.urls.jdo.JavaNetUrlJdoEntities +
demoapp.dom.types.javanet.urls.jdo.JavaNetUrlJdoSeedService +
demoapp.dom.types.javanet.urls.samples.JavaNetUrlSamples +
demoapp.dom.types.javasql.javasqldate.jdo.JavaSqlDateJdoEntities +
demoapp.dom.types.javasql.javasqldate.jdo.JavaSqlDateJdoSeedService +
demoapp.dom.types.javasql.javasqldate.samples.JavaSqlDateSamples +
demoapp.dom.types.javasql.javasqltimestamp.jdo.JavaSqlTimestampJdoEntities +
demoapp.dom.types.javasql.javasqltimestamp.jdo.JavaSqlTimestampJdoSeedService +
demoapp.dom.types.javasql.javasqltimestamp.samples.JavaSqlTimestampSamples +
demoapp.dom.types.javatime.javatimelocaldate.jdo.JavaTimeLocalDateJdoEntities +
demoapp.dom.types.javatime.javatimelocaldate.jdo.JavaTimeLocalDateJdoSeedService +
demoapp.dom.types.javatime.javatimelocaldate.samples.JavaTimeLocalDateSamples +
demoapp.dom.types.javatime.javatimelocaldatetime.jdo.JavaTimeLocalDateTimeJdoEntities +
demoapp.dom.types.javatime.javatimelocaldatetime.jdo.JavaTimeLocalDateTimeJdoSeedService +
demoapp.dom.types.javatime.javatimelocaldatetime.samples.JavaTimeLocalDateTimeSamples +
demoapp.dom.types.javatime.javatimeoffsetdatetime.jdo.JavaTimeOffsetDateTimeJdoEntities +
demoapp.dom.types.javatime.javatimeoffsetdatetime.jdo.JavaTimeOffsetDateTimeJdoSeedService +
demoapp.dom.types.javatime.javatimeoffsetdatetime.samples.JavaTimeOffsetDateTimeSamples +
demoapp.dom.types.javatime.javatimeoffsettime.jdo.JavaTimeOffsetTimeJdoEntities +
demoapp.dom.types.javatime.javatimeoffsettime.jdo.JavaTimeOffsetTimeJdoSeedService +
demoapp.dom.types.javatime.javatimeoffsettime.samples.JavaTimeOffsetTimeSamples +
demoapp.dom.types.javatime.javatimezoneddatetime.jdo.JavaTimeZonedDateTimeJdoEntities +
demoapp.dom.types.javatime.javatimezoneddatetime.jdo.JavaTimeZonedDateTimeJdoSeedService +
demoapp.dom.types.javatime.javatimezoneddatetime.samples.JavaTimeZonedDateTimeSamples +
demoapp.dom.types.javautil.javautildate.jdo.JavaUtilDateJdoEntities +
demoapp.dom.types.javautil.javautildate.jdo.JavaUtilDateJdoSeedService +
demoapp.dom.types.javautil.javautildate.samples.JavaUtilDateSamples +
demoapp.dom.types.javautil.uuids.jdo.JavaUtilUuidJdoEntities +
demoapp.dom.types.javautil.uuids.jdo.JavaUtilUuidJdoSeedService +
demoapp.dom.types.javautil.uuids.samples.JavaUtilUuidSamples +
demoapp.dom.types.jodatime.jodadatetime.jdo.JodaDateTimeJdoEntities +
demoapp.dom.types.jodatime.jodadatetime.jdo.JodaDateTimeJdoSeedService +
demoapp.dom.types.jodatime.jodadatetime.samples.JodaDateTimeSamples +
demoapp.dom.types.jodatime.jodalocaldate.jdo.JodaLocalDateJdoEntities +
demoapp.dom.types.jodatime.jodalocaldate.jdo.JodaLocalDateJdoSeedService +
demoapp.dom.types.jodatime.jodalocaldate.samples.JodaLocalDateSamples +
demoapp.dom.types.jodatime.jodalocaldatetime.jdo.JodaLocalDateTimeJdoEntities +
demoapp.dom.types.jodatime.jodalocaldatetime.jdo.JodaLocalDateTimeJdoSeedService +
demoapp.dom.types.jodatime.jodalocaldatetime.samples.JodaLocalDateTimeSamples +
demoapp.dom.types.primitive.booleans.jdo.PrimitiveBooleanJdoEntities +
demoapp.dom.types.primitive.booleans.jdo.PrimitiveBooleanJdoSeedService +
demoapp.dom.types.primitive.bytes.jdo.PrimitiveByteJdoEntities +
demoapp.dom.types.primitive.bytes.jdo.PrimitiveByteJdoSeedService +
demoapp.dom.types.primitive.chars.jdo.PrimitiveCharJdoEntities +
demoapp.dom.types.primitive.chars.jdo.PrimitiveCharJdoSeedService +
demoapp.dom.types.primitive.doubles.jdo.PrimitiveDoubleJdoEntities +
demoapp.dom.types.primitive.doubles.jdo.PrimitiveDoubleJdoSeedService +
demoapp.dom.types.primitive.floats.jdo.PrimitiveFloatJdoEntities +
demoapp.dom.types.primitive.floats.jdo.PrimitiveFloatJdoSeedService +
demoapp.dom.types.primitive.ints.jdo.PrimitiveIntJdoEntities +
demoapp.dom.types.primitive.ints.jdo.PrimitiveIntJdoSeedService +
demoapp.dom.types.primitive.longs.jdo.PrimitiveLongJdoEntities +
demoapp.dom.types.primitive.longs.jdo.PrimitiveLongJdoSeedService +
demoapp.dom.types.primitive.shorts.jdo.PrimitiveShortJdoEntities +
demoapp.dom.types.primitive.shorts.jdo.PrimitiveShortJdoSeedService +
****

.Dependencies
****
com.h2database:h2:jar:<managed> +
org.apache.isis.extensions:isis-extensions-command-log-jdo:jar:<managed> +
org.apache.isis.extensions:isis-extensions-exceldownload-ui:jar:<managed> +
org.apache.isis.extensions:isis-extensions-modelannotation:jar:<managed> +
org.apache.isis.extensions:isis-extensions-pdfjs-applib:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-encryption-jbcrypt:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-persistence-jdo:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-shiro-realm:jar:<managed> +
org.apache.isis.testing:isis-testing-h2console-ui:jar:<managed> +
org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed> +
org.assertj:assertj-core:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
org.springframework.boot:spring-boot-configuration-processor:jar:<managed> +
****

|Demo - JavaFX
[source,yaml]
----
Group: org.apache.isis.examples.apps
Artifact: demo-javafx
Type: jar
Directory: /examples/demo/javafx
----
|.Dependencies
****
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.core:isis-core-security:jar:<managed> +
org.apache.isis.examples.apps:demo-domain:jar:${project.version} +
org.apache.isis.incubator.viewer:isis-viewer-javafx-viewer:jar:${project.version} +
org.apache.isis.mavendeps:isis-mavendeps-integtests:pom:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.security:isis-security-bypass:jar:<managed> +
org.apache.isis.security:isis-security-shiro:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui:pom:${project.version} +
org.apache.isis.valuetypes:isis-valuetypes-markdown-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-ui:pom:${project.version} +
org.projectlombok:lombok:jar:<managed> +
****

|Demo - Vaadin
[source,yaml]
----
Group: org.apache.isis.examples.apps
Artifact: demo-vaadin
Type: jar
Directory: /examples/demo/vaadin
----
|.Dependencies
****
org.apache.isis.examples.apps:demo-web:jar:${project.version} +
org.apache.isis.incubator.viewer:isis-viewer-vaadin-viewer:jar:${project.version} +
org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui-vaa:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui-wkt:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-ui-wkt:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-sse-ui-wkt:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

|Demo - Web
[source,yaml]
----
Group: org.apache.isis.examples.apps
Artifact: demo-web
Type: jar
Directory: /examples/demo/web
----
|.Components
****
demoapp.web._infra.utils.ThereCanBeOnlyOne +
****

.Dependencies
****
org.apache.isis.examples.apps:demo-domain:jar:${project.version} +
org.apache.isis.extensions:isis-extensions-command-replay-primary:jar:<managed> +
org.apache.isis.extensions:isis-extensions-command-replay-secondary:jar:<managed> +
org.apache.isis.extensions:isis-extensions-cors-impl:jar:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:<managed> +
org.springframework.boot:spring-boot-starter:jar:<managed> +
org.springframework.boot:spring-boot-starter-actuator:jar:<managed> +
org.springframework.boot:spring-boot-starter-log4j2:jar:<managed> +
****

|Demo - Wicket
[source,yaml]
----
Group: org.apache.isis.examples.apps
Artifact: demo-wicket
Type: jar
Directory: /examples/demo/wicket
----
|.Components
****
demoapp.webapp.wicket.ui.custom.WhereInTheWorldPanelFactory +
****

.Dependencies
****
org.apache.isis.examples.apps:demo-web:jar:${project.version} +
org.apache.isis.extensions:isis-extensions-pdfjs-ui:jar:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui-wkt:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-ui-wkt:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-sse-ui-wkt:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:2.0.0-SNAPSHOT +
org.apache.isis.viewer:isis-viewer-wicket-viewer:jar:2.0.0-SNAPSHOT +
****
|===

== Root

[plantuml,Root,svg]
----
@startuml(id=Root)
title Root - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Root\n[Software System]" {
  rectangle "==Apache Isis\n<size:10>[Container: packaging: pom]</size>" <<4>> as 4
  rectangle "==Apache Isis (Aggregator)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis - Antora\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
  rectangle "==Apache Isis Supplemental - Legal Info\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
}
2 .[#707070].> 4 : ""
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (Root)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis (Aggregator)
[source,yaml]
----
Group: org.apache.isis
Artifact: isis-all
Type: pom
Directory: /
----
|Convenience aggregator POM that references all modules, some explicitely,
others via profiles, that are not activiated per default.
The parent POM of the core framework is isis-parent/pom.xml.

|Apache Isis - Antora
[source,yaml]
----
Group: org.apache.isis
Artifact: antora
Type: pom
Directory: /antora
----
|

|Apache Isis
[source,yaml]
----
Group: org.apache.isis
Artifact: isis-parent
Type: pom
Directory: /isis-parent
----
|Parent for the core framework + extensions, starter parent pom for starter apps.

|Apache Isis Supplemental - Legal Info
[source,yaml]
----
Group: org.apache.isis
Artifact: supplemental-model
Type: jar
Directory: /supplemental-model
----
|For example, the templates used by many Apache distributions assemble a listing of project dependencies
according to their organization name (and URL), along with the URL each project's website. When dependency
POMs are missing this information, the dependency notice file that the Remote Resources Plugin renders can
be invalid.
To compensate for incomplete dependency POMs, we use the supplemental models support.
|===

== Commons

[plantuml,Commons,svg]
----
@startuml(id=Commons)
title Commons - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Commons\n[Software System]" {
  rectangle "==Apache Isis Commons\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Commons)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Commons
[source,yaml]
----
Group: org.apache.isis.commons
Artifact: isis-commons
Type: jar
Directory: /commons
----
|Apache Isis Commons is a library with utilities, that are shared with the entire Apache Isis ecosystem.

.Dependencies
****
com.fasterxml.jackson.core:jackson-databind:jar:<managed> +
com.google.code.findbugs:annotations:jar:<managed> +
javax:javaee-api:jar:<managed> +
org.junit.jupiter:junit-jupiter-api:jar:<managed> +
org.junit.jupiter:junit-jupiter-engine:jar:<managed> +
org.junit.jupiter:junit-jupiter-params:jar:<managed> +
org.junit.vintage:junit-vintage-engine:jar:<managed> +
org.slf4j:slf4j-api:jar:<managed> +
org.springframework:spring-context:jar:<managed> +
org.springframework:spring-tx:jar:<managed> +
org.springframework.boot:spring-boot-starter:jar:<managed> +
org.springframework.boot:spring-boot-starter-log4j2:jar:<managed> +
org.yaml:snakeyaml:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:commons:index/collections/Can.adoc[Can], xref:refguide:commons:index/collections/Cardinality.adoc[Cardinality], xref:refguide:commons:index/functional/Result.adoc[Result], xref:refguide:commons:index/resource/ResourceCoordinates.adoc[ResourceCoordinates]
****
|===

== Core

[plantuml,Core,svg]
----
@startuml(id=Core)
title Core - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<11>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<12>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<13>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<14>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<15>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<9>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<10>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Core\n[Software System]" {
  rectangle "==Apache Isis - JDK Supplemental\n<size:10>[Container: packaging: pom]</size>" <<14>> as 14
  rectangle "==Apache Isis Core\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Core - AppLib\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Core - Code Gen (ByteBuddy)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Core - Configuration\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Core - Interaction\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Core - MetaModel\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
  rectangle "==Apache Isis Core - Runtime\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
  rectangle "==Apache Isis Core - Runtime Services\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
  rectangle "==Apache Isis Core - Schemas\n<size:10>[Container: packaging: jar]</size>" <<15>> as 15
  rectangle "==Apache Isis Core - Security\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
  rectangle "==Apache Isis Core - Transaction\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
  rectangle "==Apache Isis Core - Unit Test Support\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
  rectangle "==Apache Isis Core - WebApp\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
}
2 .[#707070].> 14 : ""
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 8 : ""
2 .[#707070].> 9 : ""
2 .[#707070].> 10 : ""
2 .[#707070].> 15 : ""
2 .[#707070].> 11 : ""
2 .[#707070].> 12 : ""
2 .[#707070].> 7 : ""
2 .[#707070].> 13 : ""
@enduml
----
.Projects/Modules (Core)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Core
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core
Type: pom
Directory: /core
----
|Core framework, providing metamodel, runtime and core APIs.

.Dependencies
****
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Core - AppLib
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-applib
Type: jar
Directory: /api/applib
----
|Isis application library, defining annotations and utilities for the
default (Java) programming model.

.Components
****
o.a.i.applib.annotation.DomainObject +
o.a.i.applib.annotation.DomainService +
o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandDto +
o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandsDto +
o.a.i.applib.services.commanddto.processor.spi.CommandDtoProcessorServiceIdentity +
o.a.i.applib.services.publishing.log.CommandLogger +
o.a.i.applib.services.publishing.log.EntityChangesLogger +
o.a.i.applib.services.publishing.log.EntityPropertyChangeLogger +
o.a.i.applib.services.publishing.log.ExecutionLogger +
o.a.i.applib.services.session.SessionLoggingServiceLogging +
****

.Dependencies
****
com.google.code.findbugs:annotations:jar:<managed> +
javax:javaee-api:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-schema:jar:<managed> +
org.assertj:assertj-core:jar:<managed> +
org.jmock:jmock:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:applib:index/AbstractViewModel.adoc[AbstractViewModel], xref:refguide:applib:index/Identifier.adoc[Identifier], xref:refguide:applib:index/IsisModuleApplib.adoc[IsisModuleApplib], xref:refguide:applib:index/RecreatableDomainObject.adoc[RecreatableDomainObject], xref:refguide:applib:index/ViewModel.adoc[ViewModel], xref:refguide:applib:index/adapters/AbstractValueSemanticsProvider.adoc[AbstractValueSemanticsProvider], xref:refguide:applib:index/adapters/DefaultsProvider.adoc[DefaultsProvider], xref:refguide:applib:index/adapters/EncoderDecoder.adoc[EncoderDecoder], xref:refguide:applib:index/adapters/EncodingException.adoc[EncodingException], xref:refguide:applib:index/adapters/Parser.adoc[Parser], xref:refguide:applib:index/adapters/ParsingException.adoc[ParsingException], xref:refguide:applib:index/adapters/ValueSemanticsProvider.adoc[ValueSemanticsProvider], xref:refguide:applib:index/annotation/Action.adoc[Action], xref:refguide:applib:index/annotation/ActionLayout.adoc[ActionLayout], xref:refguide:applib:index/annotation/BookmarkPolicy.adoc[BookmarkPolicy], xref:refguide:applib:index/annotation/Bounding.adoc[Bounding], xref:refguide:applib:index/annotation/Collection.adoc[Collection], xref:refguide:applib:index/annotation/CollectionLayout.adoc[CollectionLayout], xref:refguide:applib:index/annotation/Defaulted.adoc[Defaulted], xref:refguide:applib:index/annotation/DomainObject.adoc[DomainObject], xref:refguide:applib:index/annotation/DomainObjectLayout.adoc[DomainObjectLayout], xref:refguide:applib:index/annotation/DomainService.adoc[DomainService], xref:refguide:applib:index/annotation/DomainServiceLayout.adoc[DomainServiceLayout], xref:refguide:applib:index/annotation/DomainServiceLayout~MenuBar.adoc[DomainServiceLayout.MenuBar], xref:refguide:applib:index/annotation/Editing.adoc[Editing], xref:refguide:applib:index/annotation/EntityChangeKind.adoc[EntityChangeKind], xref:refguide:applib:index/annotation/EqualByContent.adoc[EqualByContent], xref:refguide:applib:index/annotation/Facets.adoc[Facets], xref:refguide:applib:index/annotation/HomePage.adoc[HomePage], xref:refguide:applib:index/annotation/InteractionScope.adoc[InteractionScope], xref:refguide:applib:index/annotation/LabelPosition.adoc[LabelPosition], xref:refguide:applib:index/annotation/MemberOrder.adoc[MemberOrder], xref:refguide:applib:index/annotation/MinLength.adoc[MinLength], xref:refguide:applib:index/annotation/Module.adoc[Module], xref:refguide:applib:index/annotation/Nature.adoc[Nature], xref:refguide:applib:index/annotation/NatureOfService.adoc[NatureOfService], xref:refguide:applib:index/annotation/Navigable.adoc[Navigable], xref:refguide:applib:index/annotation/Optionality.adoc[Optionality], xref:refguide:applib:index/annotation/OrderPrecedence.adoc[OrderPrecedence], xref:refguide:applib:index/annotation/Parameter.adoc[Parameter], xref:refguide:applib:index/annotation/ParameterLayout.adoc[ParameterLayout], xref:refguide:applib:index/annotation/Programmatic.adoc[Programmatic], xref:refguide:applib:index/annotation/Projecting.adoc[Projecting], xref:refguide:applib:index/annotation/PromptStyle.adoc[PromptStyle], xref:refguide:applib:index/annotation/Property.adoc[Property], xref:refguide:applib:index/annotation/PropertyLayout.adoc[PropertyLayout], xref:refguide:applib:index/annotation/Publishing.adoc[Publishing], xref:refguide:applib:index/annotation/Redirect.adoc[Redirect], xref:refguide:applib:index/annotation/RenderDay.adoc[RenderDay], xref:refguide:applib:index/annotation/Repainting.adoc[Repainting], xref:refguide:applib:index/annotation/RestrictTo.adoc[RestrictTo], xref:refguide:applib:index/annotation/SemanticsOf.adoc[SemanticsOf], xref:refguide:applib:index/annotation/Snapshot.adoc[Snapshot], xref:refguide:applib:index/annotation/Title.adoc[Title], xref:refguide:applib:index/annotation/Value.adoc[Value], xref:refguide:applib:index/annotation/Where.adoc[Where], xref:refguide:applib:index/client/RepresentationTypeSimplifiedV2.adoc[RepresentationTypeSimplifiedV2], xref:refguide:applib:index/client/SuppressionType.adoc[SuppressionType], xref:refguide:applib:index/clock/VirtualClock.adoc[VirtualClock], xref:refguide:applib:index/domain/DomainObjectList.adoc[DomainObjectList], xref:refguide:applib:index/events/EventObjectBase.adoc[EventObjectBase], xref:refguide:applib:index/events/domain/AbstractDomainEvent.adoc[AbstractDomainEvent], xref:refguide:applib:index/events/domain/ActionDomainEvent.adoc[ActionDomainEvent], xref:refguide:applib:index/events/domain/CollectionDomainEvent.adoc[CollectionDomainEvent], xref:refguide:applib:index/events/domain/PropertyDomainEvent.adoc[PropertyDomainEvent], xref:refguide:applib:index/events/lifecycle/AbstractLifecycleEvent.adoc[AbstractLifecycleEvent], xref:refguide:applib:index/events/lifecycle/ObjectCreatedEvent.adoc[ObjectCreatedEvent], xref:refguide:applib:index/events/lifecycle/ObjectLoadedEvent.adoc[ObjectLoadedEvent], xref:refguide:applib:index/events/lifecycle/ObjectPersistedEvent.adoc[ObjectPersistedEvent], xref:refguide:applib:index/events/lifecycle/ObjectPersistingEvent.adoc[ObjectPersistingEvent], xref:refguide:applib:index/events/lifecycle/ObjectRemovingEvent.adoc[ObjectRemovingEvent], xref:refguide:applib:index/events/lifecycle/ObjectUpdatedEvent.adoc[ObjectUpdatedEvent], xref:refguide:applib:index/events/lifecycle/ObjectUpdatingEvent.adoc[ObjectUpdatingEvent], xref:refguide:applib:index/events/ui/AbstractUiEvent.adoc[AbstractUiEvent], xref:refguide:applib:index/events/ui/CssClassUiEvent.adoc[CssClassUiEvent], xref:refguide:applib:index/events/ui/IconUiEvent.adoc[IconUiEvent], xref:refguide:applib:index/events/ui/LayoutUiEvent.adoc[LayoutUiEvent], xref:refguide:applib:index/events/ui/TitleUiEvent.adoc[TitleUiEvent], xref:refguide:applib:index/exceptions/RecoverableException.adoc[RecoverableException], xref:refguide:applib:index/exceptions/TranslatableException.adoc[TranslatableException], xref:refguide:applib:index/exceptions/UnrecoverableException.adoc[UnrecoverableException], xref:refguide:applib:index/exceptions/unrecoverable/DomainModelException.adoc[DomainModelException], xref:refguide:applib:index/exceptions/unrecoverable/MetaModelException.adoc[MetaModelException], xref:refguide:applib:index/exceptions/unrecoverable/NoAuthenticatorException.adoc[NoAuthenticatorException], xref:refguide:applib:index/exceptions/unrecoverable/ObjectNotFoundException.adoc[ObjectNotFoundException], xref:refguide:applib:index/exceptions/unrecoverable/ObjectPersistenceException.adoc[ObjectPersistenceException], xref:refguide:applib:index/exceptions/unrecoverable/PersistFailedException.adoc[PersistFailedException], xref:refguide:applib:index/exceptions/unrecoverable/ReflectiveActionException.adoc[ReflectiveActionException], xref:refguide:applib:index/exceptions/unrecoverable/RepositoryException.adoc[RepositoryException], xref:refguide:applib:index/exceptions/unrecoverable/UnexpectedCallException.adoc[UnexpectedCallException], xref:refguide:applib:index/exceptions/unrecoverable/UnknownTypeException.adoc[UnknownTypeException], xref:refguide:applib:index/graph/Edge.adoc[Edge], xref:refguide:applib:index/graph/SimpleEdge.adoc[SimpleEdge], xref:refguide:applib:index/graph/Vertex.adoc[Vertex], xref:refguide:applib:index/graph/tree/LazyTreeNode.adoc[LazyTreeNode], xref:refguide:applib:index/graph/tree/TreeAdapter.adoc[TreeAdapter], xref:refguide:applib:index/graph/tree/TreeNode.adoc[TreeNode], xref:refguide:applib:index/graph/tree/TreePath.adoc[TreePath], xref:refguide:applib:index/graph/tree/TreeState.adoc[TreeState], xref:refguide:applib:index/id/HasLogicalType.adoc[HasLogicalType], xref:refguide:applib:index/id/LogicalType.adoc[LogicalType], xref:refguide:applib:index/jaxb/DataTypeFactory.adoc[DataTypeFactory], xref:refguide:applib:index/jaxb/JavaSqlJaxbAdapters.adoc[JavaSqlJaxbAdapters], xref:refguide:applib:index/jaxb/JavaSqlXMLGregorianCalendarMarshalling.adoc[JavaSqlXMLGregorianCalendarMarshalling], xref:refguide:applib:index/jaxb/JavaTimeJaxbAdapters.adoc[JavaTimeJaxbAdapters], xref:refguide:applib:index/jaxb/JavaTimeXMLGregorianCalendarMarshalling.adoc[JavaTimeXMLGregorianCalendarMarshalling], xref:refguide:applib:index/jaxb/JavaUtilJaxbAdapters.adoc[JavaUtilJaxbAdapters], xref:refguide:applib:index/jaxb/JodaTimeJaxbAdapters.adoc[JodaTimeJaxbAdapters], xref:refguide:applib:index/jaxb/JodaTimeXMLGregorianCalendarMarshalling.adoc[JodaTimeXMLGregorianCalendarMarshalling], xref:refguide:applib:index/jaxb/PersistentEntitiesAdapter.adoc[PersistentEntitiesAdapter], xref:refguide:applib:index/jaxb/PersistentEntityAdapter.adoc[PersistentEntityAdapter], xref:refguide:applib:index/jaxb/PrimitiveJaxbAdapters.adoc[PrimitiveJaxbAdapters], xref:refguide:applib:index/layout/component/ActionLayoutData.adoc[ActionLayoutData], xref:refguide:applib:index/layout/component/ActionLayoutDataOwner.adoc[ActionLayoutDataOwner], xref:refguide:applib:index/layout/component/CollectionLayoutData.adoc[CollectionLayoutData], xref:refguide:applib:index/layout/component/CollectionLayoutDataOwner.adoc[CollectionLayoutDataOwner], xref:refguide:applib:index/layout/component/CssClassFaPosition.adoc[CssClassFaPosition], xref:refguide:applib:index/layout/component/DomainObjectLayoutData.adoc[DomainObjectLayoutData], xref:refguide:applib:index/layout/component/DomainObjectLayoutDataOwner.adoc[DomainObjectLayoutDataOwner], xref:refguide:applib:index/layout/component/FieldSet.adoc[FieldSet], xref:refguide:applib:index/layout/component/FieldSetOwner.adoc[FieldSetOwner], xref:refguide:applib:index/layout/component/HasBookmarking.adoc[HasBookmarking], xref:refguide:applib:index/layout/component/HasCssClass.adoc[HasCssClass], xref:refguide:applib:index/layout/component/HasCssClassFa.adoc[HasCssClassFa], xref:refguide:applib:index/layout/component/HasDescribedAs.adoc[HasDescribedAs], xref:refguide:applib:index/layout/component/HasHidden.adoc[HasHidden], xref:refguide:applib:index/layout/component/HasNamed.adoc[HasNamed], xref:refguide:applib:index/layout/component/MemberRegion.adoc[MemberRegion], xref:refguide:applib:index/layout/component/MemberRegionOwner.adoc[MemberRegionOwner], xref:refguide:applib:index/layout/component/Owned.adoc[Owned], xref:refguide:applib:index/layout/component/Owner.adoc[Owner], xref:refguide:applib:index/layout/component/PropertyLayoutData.adoc[PropertyLayoutData], xref:refguide:applib:index/layout/component/ServiceActionLayoutData.adoc[ServiceActionLayoutData], xref:refguide:applib:index/layout/component/ServiceActionLayoutDataOwner.adoc[ServiceActionLayoutDataOwner], xref:refguide:applib:index/layout/grid/Grid.adoc[Grid], xref:refguide:applib:index/layout/grid/GridAbstract.adoc[GridAbstract], xref:refguide:applib:index/layout/grid/bootstrap3/BS3ClearFix.adoc[BS3ClearFix], xref:refguide:applib:index/layout/grid/bootstrap3/BS3ClearFixHidden.adoc[BS3ClearFixHidden], xref:refguide:applib:index/layout/grid/bootstrap3/BS3ClearFixVisible.adoc[BS3ClearFixVisible], xref:refguide:applib:index/layout/grid/bootstrap3/BS3Col.adoc[BS3Col], xref:refguide:applib:index/layout/grid/bootstrap3/BS3Element.adoc[BS3Element], xref:refguide:applib:index/layout/grid/bootstrap3/BS3ElementAbstract.adoc[BS3ElementAbstract], xref:refguide:applib:index/layout/grid/bootstrap3/BS3Grid.adoc[BS3Grid], xref:refguide:applib:index/layout/grid/bootstrap3/BS3Row.adoc[BS3Row], xref:refguide:applib:index/layout/grid/bootstrap3/BS3RowContent.adoc[BS3RowContent], xref:refguide:applib:index/layout/grid/bootstrap3/BS3RowContentOwner.adoc[BS3RowContentOwner], xref:refguide:applib:index/layout/grid/bootstrap3/BS3RowOwner.adoc[BS3RowOwner], xref:refguide:applib:index/layout/grid/bootstrap3/BS3Tab.adoc[BS3Tab], xref:refguide:applib:index/layout/grid/bootstrap3/BS3TabGroup.adoc[BS3TabGroup], xref:refguide:applib:index/layout/grid/bootstrap3/BS3TabGroupOwner.adoc[BS3TabGroupOwner], xref:refguide:applib:index/layout/grid/bootstrap3/BS3TabOwner.adoc[BS3TabOwner], xref:refguide:applib:index/layout/grid/bootstrap3/HasCssId.adoc[HasCssId], xref:refguide:applib:index/layout/grid/bootstrap3/Size.adoc[Size], xref:refguide:applib:index/layout/grid/bootstrap3/SizeSpan.adoc[SizeSpan], xref:refguide:applib:index/layout/grid/bootstrap3/WithinGrid.adoc[WithinGrid], xref:refguide:applib:index/layout/links/Link.adoc[Link], xref:refguide:applib:index/layout/menubars/HasNamed.adoc[HasNamed], xref:refguide:applib:index/layout/menubars/Menu.adoc[Menu], xref:refguide:applib:index/layout/menubars/MenuBar.adoc[MenuBar], xref:refguide:applib:index/layout/menubars/MenuBars.adoc[MenuBars], xref:refguide:applib:index/layout/menubars/MenuBarsAbstract.adoc[MenuBarsAbstract], xref:refguide:applib:index/layout/menubars/MenuSection.adoc[MenuSection], xref:refguide:applib:index/layout/menubars/bootstrap3/BS3Menu.adoc[BS3Menu], xref:refguide:applib:index/layout/menubars/bootstrap3/BS3MenuBar.adoc[BS3MenuBar], xref:refguide:applib:index/layout/menubars/bootstrap3/BS3MenuBars.adoc[BS3MenuBars], xref:refguide:applib:index/layout/menubars/bootstrap3/BS3MenuSection.adoc[BS3MenuSection], xref:refguide:applib:index/mixins/dto/Dto.adoc[Dto], xref:refguide:applib:index/mixins/dto/DtoMixinConstants.adoc[DtoMixinConstants], xref:refguide:applib:index/mixins/dto/Dto_downloadXml.adoc[Dto_downloadXml], xref:refguide:applib:index/mixins/dto/Dto_downloadXsd.adoc[Dto_downloadXsd], xref:refguide:applib:index/mixins/layout/LayoutMixinConstants.adoc[LayoutMixinConstants], xref:refguide:applib:index/mixins/layout/Object_downloadLayoutXml.adoc[Object_downloadLayoutXml], xref:refguide:applib:index/mixins/metamodel/Object_downloadMetamodelXml.adoc[Object_downloadMetamodelXml], xref:refguide:applib:index/mixins/metamodel/Object_objectIdentifier.adoc[Object_objectIdentifier], xref:refguide:applib:index/mixins/metamodel/Object_objectType.adoc[Object_objectType], xref:refguide:applib:index/mixins/metamodel/Object_rebuildMetamodel.adoc[Object_rebuildMetamodel], xref:refguide:applib:index/mixins/rest/Object_openRestApi.adoc[Object_openRestApi], xref:refguide:applib:index/mixins/security/HasUsername.adoc[HasUsername], xref:refguide:applib:index/mixins/system/DomainChangeRecord.adoc[DomainChangeRecord], xref:refguide:applib:index/mixins/system/DomainChangeRecord_openTargetObject.adoc[DomainChangeRecord_openTargetObject], xref:refguide:applib:index/mixins/system/DomainChangeRecord~ChangeType.adoc[DomainChangeRecord.ChangeType], xref:refguide:applib:index/mixins/system/HasInteractionId.adoc[HasInteractionId], xref:refguide:applib:index/mixins/system/HasTransactionId.adoc[HasTransactionId], xref:refguide:applib:index/mixins/updates/OnUpdatedAt.adoc[OnUpdatedAt], xref:refguide:applib:index/mixins/updates/OnUpdatedBy.adoc[OnUpdatedBy], xref:refguide:applib:index/mixins/updates/OnUpdatedByAndAt.adoc[OnUpdatedByAndAt], xref:refguide:applib:index/query/AllInstancesQuery.adoc[AllInstancesQuery], xref:refguide:applib:index/query/NamedQuery.adoc[NamedQuery], xref:refguide:applib:index/query/Query.adoc[Query], xref:refguide:applib:index/query/QueryRange.adoc[QueryRange], xref:refguide:applib:index/services/acceptheader/AcceptHeaderService.adoc[AcceptHeaderService], xref:refguide:applib:index/services/appfeat/ApplicationFeature.adoc[ApplicationFeature], xref:refguide:applib:index/services/appfeat/ApplicationFeatureId.adoc[ApplicationFeatureId], xref:refguide:applib:index/services/appfeat/ApplicationFeatureRepository.adoc[ApplicationFeatureRepository], xref:refguide:applib:index/services/appfeat/ApplicationFeatureSort.adoc[ApplicationFeatureSort], xref:refguide:applib:index/services/appfeat/ApplicationMemberSort.adoc[ApplicationMemberSort], xref:refguide:applib:index/services/bookmark/Bookmark.adoc[Bookmark], xref:refguide:applib:index/services/bookmark/BookmarkHolder.adoc[BookmarkHolder], xref:refguide:applib:index/services/bookmark/BookmarkHolder_lookup.adoc[BookmarkHolder_lookup], xref:refguide:applib:index/services/bookmark/BookmarkHolder_object.adoc[BookmarkHolder_object], xref:refguide:applib:index/services/bookmark/BookmarkService.adoc[BookmarkService], xref:refguide:applib:index/services/bookmarkui/BookmarkUiService.adoc[BookmarkUiService], xref:refguide:applib:index/services/clock/ClockService.adoc[ClockService], xref:refguide:applib:index/services/command/Command.adoc[Command], xref:refguide:applib:index/services/command/CommandExecutorService.adoc[CommandExecutorService], xref:refguide:applib:index/services/command/CommandOutcomeHandler.adoc[CommandOutcomeHandler], xref:refguide:applib:index/services/commanddto/HasCommandDto.adoc[HasCommandDto], xref:refguide:applib:index/services/commanddto/conmap/ContentMappingServiceForCommandDto.adoc[ContentMappingServiceForCommandDto], xref:refguide:applib:index/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc[ContentMappingServiceForCommandsDto], xref:refguide:applib:index/services/commanddto/conmap/UserDataKeys.adoc[UserDataKeys], xref:refguide:applib:index/services/commanddto/processor/CommandDtoProcessor.adoc[CommandDtoProcessor], xref:refguide:applib:index/services/commanddto/processor/CommandDtoProcessorForActionAbstract.adoc[CommandDtoProcessorForActionAbstract], xref:refguide:applib:index/services/commanddto/processor/CommandDtoProcessorForPropertyAbstract.adoc[CommandDtoProcessorForPropertyAbstract], xref:refguide:applib:index/services/commanddto/processor/spi/CommandDtoProcessorService.adoc[CommandDtoProcessorService], xref:refguide:applib:index/services/commanddto/processor/spi/CommandDtoProcessorServiceIdentity.adoc[CommandDtoProcessorServiceIdentity], xref:refguide:applib:index/services/confview/ConfigurationMenu.adoc[ConfigurationMenu], xref:refguide:applib:index/services/confview/ConfigurationProperty.adoc[ConfigurationProperty], xref:refguide:applib:index/services/confview/ConfigurationViewService.adoc[ConfigurationViewService], xref:refguide:applib:index/services/conmap/ContentMappingService.adoc[ContentMappingService], xref:refguide:applib:index/services/email/EmailService.adoc[EmailService], xref:refguide:applib:index/services/error/ErrorDetails.adoc[ErrorDetails], xref:refguide:applib:index/services/error/ErrorReportingService.adoc[ErrorReportingService], xref:refguide:applib:index/services/error/SimpleTicket.adoc[SimpleTicket], xref:refguide:applib:index/services/error/Ticket.adoc[Ticket], xref:refguide:applib:index/services/eventbus/EventBusService.adoc[EventBusService], xref:refguide:applib:index/services/exceprecog/Category.adoc[Category], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizer.adoc[ExceptionRecognizer], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizerAbstract.adoc[ExceptionRecognizerAbstract], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizerForType.adoc[ExceptionRecognizerForType], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizerService.adoc[ExceptionRecognizerService], xref:refguide:applib:index/services/exceprecog/Recognition.adoc[Recognition], xref:refguide:applib:index/services/factory/FactoryService.adoc[FactoryService], xref:refguide:applib:index/services/grid/GridLoaderService.adoc[GridLoaderService], xref:refguide:applib:index/services/grid/GridService.adoc[GridService], xref:refguide:applib:index/services/grid/GridSystemService.adoc[GridSystemService], xref:refguide:applib:index/services/health/Health.adoc[Health], xref:refguide:applib:index/services/health/HealthCheckService.adoc[HealthCheckService], xref:refguide:applib:index/services/hint/HintIdProvider.adoc[HintIdProvider], xref:refguide:applib:index/services/hint/HintStore.adoc[HintStore], xref:refguide:applib:index/services/homepage/HomePageResolverService.adoc[HomePageResolverService], xref:refguide:applib:index/services/i18n/LocaleProvider.adoc[LocaleProvider], xref:refguide:applib:index/services/i18n/Mode.adoc[Mode], xref:refguide:applib:index/services/i18n/TranslatableString.adoc[TranslatableString], xref:refguide:applib:index/services/i18n/TranslationService.adoc[TranslationService], xref:refguide:applib:index/services/i18n/TranslationsResolver.adoc[TranslationsResolver], xref:refguide:applib:index/services/iactn/ActionInvocation.adoc[ActionInvocation], xref:refguide:applib:index/services/iactn/Execution.adoc[Execution], xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext], xref:refguide:applib:index/services/iactn/Interaction.adoc[Interaction], xref:refguide:applib:index/services/iactn/InteractionContext.adoc[InteractionContext], xref:refguide:applib:index/services/iactn/PropertyEdit.adoc[PropertyEdit], xref:refguide:applib:index/services/iactn/SequenceType.adoc[SequenceType], xref:refguide:applib:index/services/inject/ServiceInjector.adoc[ServiceInjector], xref:refguide:applib:index/services/jaxb/JaxbService.adoc[JaxbService], xref:refguide:applib:index/services/layout/LayoutService.adoc[LayoutService], xref:refguide:applib:index/services/layout/LayoutServiceMenu.adoc[LayoutServiceMenu], xref:refguide:applib:index/services/layout/Style.adoc[Style], xref:refguide:applib:index/services/linking/DeepLinkService.adoc[DeepLinkService], xref:refguide:applib:index/services/menu/MenuBarsLoaderService.adoc[MenuBarsLoaderService], xref:refguide:applib:index/services/menu/MenuBarsService.adoc[MenuBarsService], xref:refguide:applib:index/services/message/MessageService.adoc[MessageService], xref:refguide:applib:index/services/metamodel/BeanSort.adoc[BeanSort], xref:refguide:applib:index/services/metamodel/Config.adoc[Config], xref:refguide:applib:index/services/metamodel/DomainMember.adoc[DomainMember], xref:refguide:applib:index/services/metamodel/DomainModel.adoc[DomainModel], xref:refguide:applib:index/services/metamodel/MetaModelService.adoc[MetaModelService], xref:refguide:applib:index/services/metamodel/MetaModelServiceMenu.adoc[MetaModelServiceMenu], xref:refguide:applib:index/services/metrics/MetricsService.adoc[MetricsService], xref:refguide:applib:index/services/publishing/log/CommandLogger.adoc[CommandLogger], xref:refguide:applib:index/services/publishing/log/EntityChangesLogger.adoc[EntityChangesLogger], xref:refguide:applib:index/services/publishing/log/EntityPropertyChangeLogger.adoc[EntityPropertyChangeLogger], xref:refguide:applib:index/services/publishing/log/ExecutionLogger.adoc[ExecutionLogger], xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[CommandSubscriber], xref:refguide:applib:index/services/publishing/spi/EntityChanges.adoc[EntityChanges], xref:refguide:applib:index/services/publishing/spi/EntityChangesSubscriber.adoc[EntityChangesSubscriber], xref:refguide:applib:index/services/publishing/spi/EntityPropertyChange.adoc[EntityPropertyChange], xref:refguide:applib:index/services/publishing/spi/EntityPropertyChangeSubscriber.adoc[EntityPropertyChangeSubscriber], xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber], xref:refguide:applib:index/services/queryresultscache/MethodReferences.adoc[MethodReferences], xref:refguide:applib:index/services/queryresultscache/QueryResultsCache.adoc[QueryResultsCache], xref:refguide:applib:index/services/queryresultscache/QueryResultsCacheControl.adoc[QueryResultsCacheControl], xref:refguide:applib:index/services/registry/InstanceByPriorityComparator.adoc[InstanceByPriorityComparator], xref:refguide:applib:index/services/registry/ServiceRegistry.adoc[ServiceRegistry], xref:refguide:applib:index/services/repository/EntityState.adoc[EntityState], xref:refguide:applib:index/services/repository/RepositoryService.adoc[RepositoryService], xref:refguide:applib:index/services/routing/RoutingService.adoc[RoutingService], xref:refguide:applib:index/services/scratchpad/Scratchpad.adoc[Scratchpad], xref:refguide:applib:index/services/session/SessionLoggingService.adoc[SessionLoggingService], xref:refguide:applib:index/services/session/SessionLoggingServiceLogging.adoc[SessionLoggingServiceLogging], xref:refguide:applib:index/services/sudo/SudoService.adoc[SudoService], xref:refguide:applib:index/services/swagger/Format.adoc[Format], xref:refguide:applib:index/services/swagger/SwaggerService.adoc[SwaggerService], xref:refguide:applib:index/services/swagger/Visibility.adoc[Visibility], xref:refguide:applib:index/services/tablecol/TableColumnOrderForCollectionTypeAbstract.adoc[TableColumnOrderForCollectionTypeAbstract], xref:refguide:applib:index/services/tablecol/TableColumnOrderService.adoc[TableColumnOrderService], xref:refguide:applib:index/services/title/TitleService.adoc[TitleService], xref:refguide:applib:index/services/urlencoding/UrlEncodingService.adoc[UrlEncodingService], xref:refguide:applib:index/services/urlencoding/UrlEncodingServiceUsingBaseEncodingAbstract.adoc[UrlEncodingServiceUsingBaseEncodingAbstract], xref:refguide:applib:index/services/user/RoleMemento.adoc[RoleMemento], xref:refguide:applib:index/services/user/UserMemento.adoc[UserMemento], xref:refguide:applib:index/services/user/UserService.adoc[UserService], xref:refguide:applib:index/services/userprof/UserProfileService.adoc[UserProfileService], xref:refguide:applib:index/services/userreg/EmailNotificationService.adoc[EmailNotificationService], xref:refguide:applib:index/services/userreg/UserDetails.adoc[UserDetails], xref:refguide:applib:index/services/userreg/UserRegistrationService.adoc[UserRegistrationService], xref:refguide:applib:index/services/userreg/events/EmailEventAbstract.adoc[EmailEventAbstract], xref:refguide:applib:index/services/userreg/events/EmailRegistrationEvent.adoc[EmailRegistrationEvent], xref:refguide:applib:index/services/userreg/events/PasswordResetEvent.adoc[PasswordResetEvent], xref:refguide:applib:index/services/wrapper/DisabledException.adoc[DisabledException], xref:refguide:applib:index/services/wrapper/HiddenException.adoc[HiddenException], xref:refguide:applib:index/services/wrapper/InvalidException.adoc[InvalidException], xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory], xref:refguide:applib:index/services/wrapper/WrappingObject.adoc[WrappingObject], xref:refguide:applib:index/services/wrapper/control/AsyncControl.adoc[AsyncControl], xref:refguide:applib:index/services/wrapper/control/ControlAbstract.adoc[ControlAbstract], xref:refguide:applib:index/services/wrapper/control/ExceptionHandler.adoc[ExceptionHandler], xref:refguide:applib:index/services/wrapper/control/ExceptionHandlerAbstract.adoc[ExceptionHandlerAbstract], xref:refguide:applib:index/services/wrapper/control/ExecutionMode.adoc[ExecutionMode], xref:refguide:applib:index/services/wrapper/control/SyncControl.adoc[SyncControl], xref:refguide:applib:index/services/wrapper/events/AccessEvent.adoc[AccessEvent], xref:refguide:applib:index/services/wrapper/events/ActionArgumentEvent.adoc[ActionArgumentEvent], xref:refguide:applib:index/services/wrapper/events/ActionInvocationEvent.adoc[ActionInvocationEvent], xref:refguide:applib:index/services/wrapper/events/ActionUsabilityEvent.adoc[ActionUsabilityEvent], xref:refguide:applib:index/services/wrapper/events/ActionVisibilityEvent.adoc[ActionVisibilityEvent], xref:refguide:applib:index/services/wrapper/events/CollectionAccessEvent.adoc[CollectionAccessEvent], xref:refguide:applib:index/services/wrapper/events/CollectionAddToEvent.adoc[CollectionAddToEvent], xref:refguide:applib:index/services/wrapper/events/CollectionMethodEvent.adoc[CollectionMethodEvent], xref:refguide:applib:index/services/wrapper/events/CollectionRemoveFromEvent.adoc[CollectionRemoveFromEvent], xref:refguide:applib:index/services/wrapper/events/CollectionUsabilityEvent.adoc[CollectionUsabilityEvent], xref:refguide:applib:index/services/wrapper/events/InteractionEvent.adoc[InteractionEvent], xref:refguide:applib:index/services/wrapper/events/ObjectTitleEvent.adoc[ObjectTitleEvent], xref:refguide:applib:index/services/wrapper/events/ObjectValidityEvent.adoc[ObjectValidityEvent], xref:refguide:applib:index/services/wrapper/events/ObjectVisibilityEvent.adoc[ObjectVisibilityEvent], xref:refguide:applib:index/services/wrapper/events/ParseValueEvent.adoc[ParseValueEvent], xref:refguide:applib:index/services/wrapper/events/PropertyAccessEvent.adoc[PropertyAccessEvent], xref:refguide:applib:index/services/wrapper/events/PropertyModifyEvent.adoc[PropertyModifyEvent], xref:refguide:applib:index/services/wrapper/events/PropertyUsabilityEvent.adoc[PropertyUsabilityEvent], xref:refguide:applib:index/services/wrapper/events/PropertyVisibilityEvent.adoc[PropertyVisibilityEvent], xref:refguide:applib:index/services/wrapper/events/ProposedHolderEvent.adoc[ProposedHolderEvent], xref:refguide:applib:index/services/wrapper/events/UsabilityEvent.adoc[UsabilityEvent], xref:refguide:applib:index/services/wrapper/events/ValidityEvent.adoc[ValidityEvent], xref:refguide:applib:index/services/wrapper/events/VisibilityEvent.adoc[VisibilityEvent], xref:refguide:applib:index/services/wrapper/listeners/InteractionAdapter.adoc[InteractionAdapter], xref:refguide:applib:index/services/wrapper/listeners/InteractionListener.adoc[InteractionListener], xref:refguide:applib:index/services/xactn/TransactionId.adoc[TransactionId], xref:refguide:applib:index/services/xactn/TransactionService.adoc[TransactionService], xref:refguide:applib:index/services/xactn/TransactionState.adoc[TransactionState], xref:refguide:applib:index/services/xactn/TransactionalProcessor.adoc[TransactionalProcessor], xref:refguide:applib:index/services/xml/XmlService.adoc[XmlService], xref:refguide:applib:index/services/xmlsnapshot/XmlSnapshotService.adoc[XmlSnapshotService], xref:refguide:applib:index/services/xmlsnapshot/XmlSnapshotService~Snapshot.adoc[XmlSnapshotService.Snapshot], xref:refguide:applib:index/services/xmlsnapshot/XmlSnapshotService~Snapshot~Builder.adoc[XmlSnapshotService.Snapshot.Builder], xref:refguide:applib:index/snapshot/SnapshottableWithInclusions.adoc[SnapshottableWithInclusions], xref:refguide:applib:index/spec/AbstractSpecification.adoc[AbstractSpecification], xref:refguide:applib:index/spec/AbstractSpecification2.adoc[AbstractSpecification2], xref:refguide:applib:index/spec/Specification.adoc[Specification], xref:refguide:applib:index/spec/Specification2.adoc[Specification2], xref:refguide:applib:index/spec/SpecificationAnd.adoc[SpecificationAnd], xref:refguide:applib:index/spec/SpecificationNot.adoc[SpecificationNot], xref:refguide:applib:index/spec/SpecificationOr.adoc[SpecificationOr], xref:refguide:applib:index/types/DescriptionType.adoc[DescriptionType], xref:refguide:applib:index/types/MemberIdentifierType.adoc[MemberIdentifierType], xref:refguide:applib:index/types/TargetActionType.adoc[TargetActionType], xref:refguide:applib:index/types/TargetClassType.adoc[TargetClassType], xref:refguide:applib:index/util/Enums.adoc[Enums], xref:refguide:applib:index/util/Equality.adoc[Equality], xref:refguide:applib:index/util/Hashing.adoc[Hashing], xref:refguide:applib:index/util/JaxbUtil.adoc[JaxbUtil], xref:refguide:applib:index/util/ObjectContracts.adoc[ObjectContracts], xref:refguide:applib:index/util/ReasonBuffer.adoc[ReasonBuffer], xref:refguide:applib:index/util/ReasonBuffer2.adoc[ReasonBuffer2], xref:refguide:applib:index/util/Reasons.adoc[Reasons], xref:refguide:applib:index/util/TitleBuffer.adoc[TitleBuffer], xref:refguide:applib:index/util/TitleBufferException.adoc[TitleBufferException], xref:refguide:applib:index/util/ToString.adoc[ToString], xref:refguide:applib:index/util/schema/ChangesDtoUtils.adoc[ChangesDtoUtils], xref:refguide:applib:index/util/schema/CommandDtoUtils.adoc[CommandDtoUtils], xref:refguide:applib:index/util/schema/CommonDtoUtils.adoc[CommonDtoUtils], xref:refguide:applib:index/util/schema/InteractionDtoUtils.adoc[InteractionDtoUtils], xref:refguide:applib:index/util/schema/MemberExecutionDtoUtils.adoc[MemberExecutionDtoUtils], xref:refguide:applib:index/value/Blob.adoc[Blob], xref:refguide:applib:index/value/Clob.adoc[Clob], xref:refguide:applib:index/value/HasHtml.adoc[HasHtml], xref:refguide:applib:index/value/LocalResourcePath.adoc[LocalResourcePath], xref:refguide:applib:index/value/Markup.adoc[Markup], xref:refguide:applib:index/value/NamedWithMimeType.adoc[NamedWithMimeType], xref:refguide:applib:index/value/OpenUrlStrategy.adoc[OpenUrlStrategy], xref:refguide:applib:index/value/Password.adoc[Password]
****

|Apache Isis Core - Code Gen (ByteBuddy)
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-codegen-bytebuddy
Type: jar
Directory: /core/codegen-bytebuddy
----
|Code generation using ByteBuddy.

.Components
****
o.a.i.core.codegen.bytebuddy.services.ProxyFactoryServiceByteBuddy +
****

.Dependencies
****
net.bytebuddy:byte-buddy:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.objenesis:objenesis:jar:<managed> +
****

|Apache Isis Core - Configuration
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-config
Type: jar
Directory: /core/config
----
|Isis configuration library for framework internal use.

.Components
****
o.a.i.core.config.applib.RestfulPathProvider +
o.a.i.core.config.beans.IsisBeanFactoryPostProcessorForSpring +
o.a.i.core.config.beans.IsisBeanTypeRegistryDefault +
o.a.i.core.config.converters.PatternsConverter +
o.a.i.core.config.datasources.DataSourceIntrospectionService +
o.a.i.core.config.environment.IsisLocaleInitializer +
o.a.i.core.config.environment.IsisSystemEnvironment +
o.a.i.core.config.environment.IsisTimeZoneInitializer +
o.a.i.core.config.validators.PatternOptionalStringConstraintValidator +
o.a.i.core.config.viewer.wicket.WebAppContextPath +
****

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.hibernate.validator:hibernate-validator:jar:<managed> +
org.springframework.boot:spring-boot-configuration-processor:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/config/datasources/DataSourceIntrospectionService.adoc[DataSourceIntrospectionService]
****

|Apache Isis Core - Interaction
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-interaction
Type: jar
Directory: /core/interaction
----
|Provides _Interaction Scope_.
Top level action execution or property changes are wrapped in an _Interaction_.
That typically corresponds to a http request/response cycle or a JUnit test method execution.

.Components
****
o.a.i.core.interaction.integration.InteractionAwareTransactionalBoundaryHandler +
o.a.i.core.interaction.scope.InteractionScopeBeanFactoryPostProcessor +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/interaction/session/InteractionFactory.adoc[InteractionFactory]
****

|Apache Isis Core - Unit Test Support
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-internaltestsupport
Type: jar
Directory: /core/internaltestsupport
----
|Support for writing unit tests in either JUnit 4 or JUnit 5; should be added as a dependency with scope=test only

.Dependencies
****
net.bytebuddy:byte-buddy:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-core-codegen-bytebuddy:jar:<managed> +
org.assertj:assertj-core:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
org.hamcrest:hamcrest-library:jar:<managed> +
org.jmock:jmock:jar:<managed> +
org.jmock:jmock-junit4:jar:<managed> +
org.junit.jupiter:junit-jupiter-api:jar:<managed> +
org.junit.jupiter:junit-jupiter-engine:jar:<managed> +
org.junit.vintage:junit-vintage-engine:jar:<managed> +
org.mockito:mockito-core:jar:<managed> +
org.picocontainer:picocontainer:jar:<managed> +
org.slf4j:slf4j-api:jar:${slf4j-api.version} +
org.springframework:spring-test:jar:<managed> +
org.springframework.boot:spring-boot-starter-test:jar:<managed> +
****

|Apache Isis Core - MetaModel
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-metamodel
Type: jar
Directory: /core/metamodel
----
|.Components
****
o.a.i.core.metamodel.facets.schema.IsisSchemaMetaModelRefiner +
o.a.i.core.metamodel.facets.schema.IsisSchemaValueTypeProvider +
o.a.i.core.metamodel.objectmanager.ObjectManagerDefault +
o.a.i.core.metamodel.progmodel.ProgrammingModelInitFilterDefault +
o.a.i.core.metamodel.services.ServiceInjectorDefault +
o.a.i.core.metamodel.services.appfeat.ApplicationFeatureRepositoryDefault +
o.a.i.core.metamodel.services.classsubstitutor.ClassSubstitutorDefault +
o.a.i.core.metamodel.services.classsubstitutor.ClassSubstitutorForCollections +
o.a.i.core.metamodel.services.classsubstitutor.ClassSubstitutorForDomainObjects +
o.a.i.core.metamodel.services.classsubstitutor.ClassSubstitutorRegistry +
o.a.i.core.metamodel.services.events.MetamodelEventService +
o.a.i.core.metamodel.services.exceprecog.ExceptionRecognizerForRecoverableException +
o.a.i.core.metamodel.services.grid.GridLoaderServiceDefault +
o.a.i.core.metamodel.services.grid.GridReaderUsingJaxb +
o.a.i.core.metamodel.services.grid.GridServiceDefault +
o.a.i.core.metamodel.services.grid.bootstrap3.GridSystemServiceBS3 +
o.a.i.core.metamodel.services.layout.LayoutServiceDefault +
o.a.i.core.metamodel.services.metamodel.MetaModelServiceDefault +
o.a.i.core.metamodel.services.registry.ServiceRegistryDefault +
o.a.i.core.metamodel.services.tablecol.TableColumnOrderServiceDefault +
o.a.i.core.metamodel.services.title.TitleServiceDefault +
o.a.i.core.metamodel.specloader.InjectorMethodEvaluatorDefault +
o.a.i.core.metamodel.specloader.ProgrammingModelServiceDefault +
o.a.i.core.metamodel.specloader.SpecificationLoaderDefault +
o.a.i.core.metamodel.valuetypes.ValueTypeProviderDefault +
o.a.i.core.metamodel.valuetypes.ValueTypeProviderForBuiltin +
o.a.i.core.metamodel.valuetypes.ValueTypeProviderForCollections +
o.a.i.core.metamodel.valuetypes.ValueTypeRegistry +
****

.Dependencies
****
io.swagger:swagger-core:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-config:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-security:jar:<managed> +
org.hibernate.validator:hibernate-validator:jar:<managed> +
org.jmock:jmock:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/metamodel/services/command/CommandDtoFactory.adoc[CommandDtoFactory], xref:refguide:core:index/metamodel/services/ixn/InteractionDtoFactory.adoc[InteractionDtoFactory], xref:refguide:core:index/metamodel/services/publishing/CommandPublisher.adoc[CommandPublisher], xref:refguide:core:index/metamodel/services/publishing/ExecutionPublisher.adoc[ExecutionPublisher]
****

|Apache Isis Core - Runtime
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-runtime
Type: jar
Directory: /core/runtime
----
|Bundles framework internal services, utilities and events.

.Components
****
o.a.i.core.runtime.events.MetamodelEventService +
o.a.i.core.runtime.events.TransactionEventEmitter +
****

.Dependencies
****
org.apache.isis.core:isis-core-interaction:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.core:isis-core-transaction:jar:<managed> +
****

|Apache Isis Core - Runtime Services
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-runtimeservices
Type: jar
Directory: /core/runtimeservices
----
|Introduced to keep the 'runtime' package concise. Viewers don't have dependencies on this module.

.Components
****
o.a.i.core.runtimeservices.bookmarks.BookmarkServiceDefault +
o.a.i.core.runtimeservices.clock.ClockServiceDefault +
o.a.i.core.runtimeservices.command.CommandDtoFactoryDefault +
o.a.i.core.runtimeservices.command.CommandExecutorServiceDefault +
o.a.i.core.runtimeservices.confmenu.ConfigurationViewServiceDefault +
o.a.i.core.runtimeservices.email.EmailServiceDefault +
o.a.i.core.runtimeservices.eventbus.EventBusServiceSpring +
o.a.i.core.runtimeservices.executor.MemberExecutorServiceDefault +
o.a.i.core.runtimeservices.factory.FactoryServiceDefault +
o.a.i.core.runtimeservices.homepage.HomePageResolverServiceDefault +
o.a.i.core.runtimeservices.i18n.po.TranslationServicePo +
o.a.i.core.runtimeservices.interaction.InteractionDtoFactoryDefault +
o.a.i.core.runtimeservices.jaxb.JaxbServiceDefault +
o.a.i.core.runtimeservices.menubars.MenuBarsLoaderServiceDefault +
o.a.i.core.runtimeservices.menubars.bootstrap3.MenuBarsServiceBS3 +
o.a.i.core.runtimeservices.message.MessageServiceDefault +
o.a.i.core.runtimeservices.publish.CommandPublisherDefault +
o.a.i.core.runtimeservices.publish.EntityChangesPublisherDefault +
o.a.i.core.runtimeservices.publish.EntityPropertyChangePublisherDefault +
o.a.i.core.runtimeservices.publish.ExecutionPublisherDefault +
o.a.i.core.runtimeservices.queryresultscache.QueryResultsCacheDefault +
o.a.i.core.runtimeservices.recognizer.ExceptionRecognizerServiceDefault +
o.a.i.core.runtimeservices.recognizer.dae.ExceptionRecognizerForDataAccessException +
o.a.i.core.runtimeservices.repository.RepositoryServiceDefault +
o.a.i.core.runtimeservices.routing.RoutingServiceDefault +
o.a.i.core.runtimeservices.scratchpad.ScratchpadDefault +
o.a.i.core.runtimeservices.session.InteractionFactoryDefault +
o.a.i.core.runtimeservices.sudo.SudoServiceDefault +
o.a.i.core.runtimeservices.transaction.TransactionServiceSpring +
o.a.i.core.runtimeservices.urlencoding.UrlEncodingServiceWithCompression +
o.a.i.core.runtimeservices.user.UserServiceDefault +
o.a.i.core.runtimeservices.userprof.UserProfileServiceDefault +
o.a.i.core.runtimeservices.userreg.EmailNotificationServiceDefault +
o.a.i.core.runtimeservices.wrapper.WrapperFactoryDefault +
o.a.i.core.runtimeservices.xml.XmlServiceDefault +
o.a.i.core.runtimeservices.xmlsnapshot.XmlSnapshotServiceDefault +
****

.Dependencies
****
org.apache.isis.core:isis-core-codegen-bytebuddy:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.hsqldb:hsqldb:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/runtimeservices/transaction/TransactionServiceSpring.adoc[TransactionServiceSpring], xref:refguide:core:index/runtimeservices/xml/XmlServiceDefault.adoc[XmlServiceDefault]
****

|Apache Isis Core - Security
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-security
Type: jar
Directory: /core/security
----
|.Components
****
o.a.i.core.security.authentication.manager.AuthenticationManager +
o.a.i.core.security.authentication.standard.RandomCodeGeneratorDefault +
o.a.i.core.security.authorization.manager.AuthorizationManager +
****

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-config:jar:<managed> +
org.hamcrest:hamcrest-library:jar:<managed> +
org.junit.jupiter:junit-jupiter-api:jar:<managed> +
org.junit.jupiter:junit-jupiter-engine:jar:<managed> +
org.junit.vintage:junit-vintage-engine:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/security/authentication/Authentication.adoc[Authentication], xref:refguide:core:index/security/authentication/AuthenticationRequest.adoc[AuthenticationRequest], xref:refguide:core:index/security/authentication/Authenticator.adoc[Authenticator], xref:refguide:core:index/security/authorization/Authorizor.adoc[Authorizor]
****

|Apache Isis Core - Transaction
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-transaction
Type: jar
Directory: /core/transaction
----
|Provides transaction integration with Spring and also
entity change tracking, with associated publishing and pre/post value events.

.Components
****
o.a.i.core.transaction.changetracking.EntityChangeTrackerDefault +
o.a.i.core.transaction.changetracking.events.TimestampService +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/transaction/changetracking/EntityChangeTracker.adoc[EntityChangeTracker], xref:refguide:core:index/transaction/changetracking/EntityChangeTrackerDefault.adoc[EntityChangeTrackerDefault], xref:refguide:core:index/transaction/changetracking/EntityChangesPublisher.adoc[EntityChangesPublisher], xref:refguide:core:index/transaction/changetracking/EntityPropertyChangePublisher.adoc[EntityPropertyChangePublisher], xref:refguide:core:index/transaction/events/TransactionAfterCompletionEvent.adoc[TransactionAfterCompletionEvent]
****

|Apache Isis Core - WebApp
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-webapp
Type: jar
Directory: /core/webapp
----
|Bundles all the web specific classes a srequired by viewers.
Introduced to keep the 'runtime' package concise.

.Components
****
o.a.i.core.webapp.health.HealthIndicatorUsingHealthCheckService +
o.a.i.core.webapp.modules.logonlog.WebModuleLogOnExceptionLogger +
o.a.i.core.webapp.modules.templresources.WebModuleTemplateResources +
o.a.i.core.webapp.webappctx.IsisWebAppContextInitializer +
****

.Dependencies
****
org.apache.isis.core:isis-core-interaction:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.core:isis-core-transaction:jar:<managed> +
org.springframework:spring-web:jar:<managed> +
org.springframework.boot:spring-boot:jar:<managed> +
org.springframework.boot:spring-boot-actuator:jar:<managed> +
org.springframework.boot:spring-boot-starter-thymeleaf:jar:<managed> +
****

|Apache Isis - JDK Supplemental
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-jdk-supplemental
Type: pom
Directory: /core/jdk-supplemental
----
|Defines a module to bring in dependencies that were part of JDK 8 but
had been removed with later JDK versions.

Will be removed once the framework migrates to Java 11 as the required
minimum version.

.Dependencies
****
com.fasterxml.woodstox:woodstox-core:jar:<managed> +
com.sun.xml.bind:jaxb-core:jar:<managed> +
com.sun.xml.bind:jaxb-impl:jar:<managed> +
com.sun.xml.ws:jaxws-ri:pom:<managed> +
com.sun.xml.ws:jaxws-rt:jar:${jaxws-ri.version} +
javax.xml.bind:jaxb-api:jar:<managed> +
org.codehaus.woodstox:stax2-api:jar:<managed> +
org.eclipse.persistence:org.eclipse.persistence.moxy:jar:<managed> +
org.eclipse.persistence:org.eclipse.persistence.sdo:jar:<managed> +
****

|Apache Isis Core - Schemas
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-schema
Type: jar
Directory: /api/schema
----
|Apache Isis schemas, for conversion into canonical DTOs (for use in integration scenarios).

.Dependencies
****
joda-time:joda-time:jar:<managed> +
org.springframework:spring-context:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:schema:index/IsisModuleSchema.adoc[IsisModuleSchema]
****
|===

== Persistence

=== JDO

[plantuml,JDO,svg]
----
@startuml(id=JDO)
title JDO - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "JDO\n[Software System]" {
  rectangle "==Apache Isis Persistence - JDO\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Persistence - JDO (Spring)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
  rectangle "==Apache Isis Persistence - JDO (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Persistence - JDO (integration)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Persistence - JDO (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Persistence - JDO (provider)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
  rectangle "==Apache Isis Persistence - JDO Provider (DataNucleus)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
}
2 .[#707070].> 8 : ""
2 .[#707070].> 3 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 7 : ""
2 .[#707070].> 4 : ""
@enduml
----
.Projects/Modules (JDO)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Persistence - JDO
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jdo
Type: pom
Directory: /persistence/jdo
----
|Supplementary applib for JDO persistence

|Apache Isis Persistence - JDO (applib)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jdo-applib
Type: jar
Directory: /persistence/jdo/applib
----
|Supplementary applib for JDO persistence

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.datanucleus:datanucleus-rdbms:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:persistence:index/jdo/applib/IsisModulePersistenceJdoApplib.adoc[IsisModulePersistenceJdoApplib], xref:refguide:persistence:index/jdo/applib/services/JdoSupportService.adoc[JdoSupportService]
****

|Apache Isis Persistence - JDO Provider (DataNucleus)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jdo-datanucleus
Type: jar
Directory: /persistence/jdo/datanucleus
----
|JDO Implementation (powered by DataNucleus)

.Components
****
o.a.i.persistence.jdo.datanucleus.config.DnEntityDiscoveryListener +
o.a.i.persistence.jdo.datanucleus.entities.DnEntityStateProvider +
o.a.i.persistence.jdo.datanucleus.jdosupport.JdoSupportServiceDefault +
o.a.i.persistence.jdo.datanucleus.metamodel.JdoDataNucleusProgrammingModel +
****

.Dependencies
****
com.h2database:h2:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-integration:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-provider:jar:<managed> +
org.datanucleus:datanucleus-api-jdo:jar:<managed> +
org.datanucleus:datanucleus-core:jar:<managed> +
org.datanucleus:datanucleus-jdo-query:jar:<managed> +
org.datanucleus:datanucleus-jodatime:jar:<managed> +
org.datanucleus:datanucleus-rdbms:jar:<managed> +
org.springframework.boot:spring-boot-starter-jdbc:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:persistence:index/jdo/datanucleus/IsisModuleJdoDatanucleus.adoc[IsisModuleJdoDatanucleus], xref:refguide:persistence:index/jdo/datanucleus/changetracking/JdoLifecycleListener.adoc[JdoLifecycleListener], xref:refguide:persistence:index/jdo/datanucleus/dialect/DnJdoDialect.adoc[DnJdoDialect], xref:refguide:persistence:index/jdo/datanucleus/mixins/Persistable_datanucleusIdLong.adoc[Persistable_datanucleusIdLong], xref:refguide:persistence:index/jdo/datanucleus/mixins/Persistable_datanucleusVersionLong.adoc[Persistable_datanucleusVersionLong], xref:refguide:persistence:index/jdo/datanucleus/mixins/Persistable_datanucleusVersionTimestamp.adoc[Persistable_datanucleusVersionTimestamp], xref:refguide:persistence:index/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.adoc[Persistable_downloadJdoMetadata], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/applib/IsisBookmarkConverter.adoc[IsisBookmarkConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/applib/IsisLocalResourcePathConverter.adoc[IsisLocalResourcePathConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/applib/IsisMarkupConverter.adoc[IsisMarkupConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/applib/IsisPasswordConverter.adoc[IsisPasswordConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/image/JavaAwtBufferedImageByteArrayConverter.adoc[JavaAwtBufferedImageByteArrayConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/schema/v2/IsisChangesDtoConverter.adoc[IsisChangesDtoConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/schema/v2/IsisCommandDtoConverter.adoc[IsisCommandDtoConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/schema/v2/IsisInteractionDtoConverter.adoc[IsisInteractionDtoConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/schema/v2/IsisOidDtoConverter.adoc[IsisOidDtoConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/time/IsoOffsetTimeConverter.adoc[IsoOffsetTimeConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/time/IsoZonedDateTimeConverter.adoc[IsoZonedDateTimeConverter], xref:refguide:persistence:index/jdo/datanucleus/valuemappings/applib/ByteArrayBlobRdbmsMapping.adoc[ByteArrayBlobRdbmsMapping], xref:refguide:persistence:index/jdo/datanucleus/valuetypes/applib/IsisBlobMapping.adoc[IsisBlobMapping], xref:refguide:persistence:index/jdo/datanucleus/valuetypes/applib/IsisClobMapping.adoc[IsisClobMapping]
****

|Apache Isis Persistence - JDO (integration)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jdo-integration
Type: jar
Directory: /persistence/jdo/integration
----
|JDO Integration (powered by DataNucleus)

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-metamodel:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-spring:jar:<managed> +
****

|Apache Isis Persistence - JDO (metamodel)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jdo-metamodel
Type: jar
Directory: /persistence/jdo/metamodel
----
|JDO Metamodel Facets / Programming Model

.Components
****
o.a.i.persistence.jdo.metamodel.JdoProgrammingModel +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-provider:jar:<managed> +
****

|Apache Isis Persistence - JDO (provider)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jdo-provider
Type: jar
Directory: /persistence/jdo/provider
----
|JDO Provider to be implemented by any actual JDO provider eg. DataNucleus.

.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
****

|Apache Isis Persistence - JDO (Spring)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jdo-spring
Type: jar
Directory: /persistence/jdo/spring
----
|JDO Spring integration.

This is a fork of the Spring ORM JDO sources at github,
for which support had been dropped back in 2016 [1].

Credits to the original authors. See also docs [2].

[1] https://github.com/spring-projects/spring-framework/issues/18702
[2] https://docs.spring.io/spring-framework/docs/3.0.0.RC2/reference/html/ch13s04.html

.Dependencies
****
javax.servlet:javax.servlet-api:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-config:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-provider:jar:<managed> +
org.springframework:spring-jdbc:jar:<managed> +
org.springframework:spring-web:jar:<managed> +
****
|===

=== JPA

[plantuml,JPA,svg]
----
@startuml(id=JPA)
title JPA - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "JPA\n[Software System]" {
  rectangle "==Apache Isis Persistence - JPA\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Persistence - JPA (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Persistence - JPA (integration)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Persistence - JPA (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Persistence - JPA EclipseLink\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
}
2 .[#707070].> 3 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 4 : ""
@enduml
----
.Projects/Modules (JPA)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Persistence - JPA
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jpa
Type: pom
Directory: /persistence/jpa
----
|Apache Isis JPA integration

|Apache Isis Persistence - JPA (applib)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jpa-applib
Type: jar
Directory: /persistence/jpa/applib
----
|Supplementary applib for JPA persistence

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:persistence:index/jpa/applib/integration/JpaEntityInjectionPointResolver.adoc[JpaEntityInjectionPointResolver], xref:refguide:persistence:index/jpa/applib/services/JpaSupportService.adoc[JpaSupportService]
****

|Apache Isis Persistence - JPA EclipseLink
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jpa-eclipselink
Type: jar
Directory: /persistence/jpa/eclipselink
----
|EclipseLink integration. Sets up EclipseLink as the implementation provider for Spring Data JPA.

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jpa-integration:jar:<managed> +
org.eclipse.persistence:org.eclipse.persistence.jpa:jar:2.7.8 +
org.springframework.boot:spring-boot-starter-data-jpa:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:persistence:index/jpa/eclipselink/IsisModuleJpaEclipselink.adoc[IsisModuleJpaEclipselink]
****

|Apache Isis Persistence - JPA (integration)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jpa-integration
Type: jar
Directory: /persistence/jpa/integration
----
|JPA integration (facets, jpa-context)

.Components
****
o.a.i.persistence.jpa.integration.metamodel.JpaProgrammingModel +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jpa-metamodel:jar:<managed> +
org.springframework.data:spring-data-jpa:jar:<managed> +
****

|Apache Isis Persistence - JPA (metamodel)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jpa-metamodel
Type: jar
Directory: /persistence/jpa/metamodel
----
|JPA Metamodel Facets / Programming Model

.Components
****
o.a.i.persistence.jpa.metamodel.JpaProgrammingModel +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed> +
****
|===

== Security

[plantuml,Security,svg]
----
@startuml(id=Security)
title Security - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Security\n[Software System]" {
  rectangle "==Apache Isis Security - Spring\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Security)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Security - Spring
[source,yaml]
----
Group: org.apache.isis.security
Artifact: isis-security-spring
Type: jar
Directory: /security/spring
----
|Authentication using Spring Security

.Components
****
o.a.i.security.spring.authentication.AuthenticatorSpring +
o.a.i.security.spring.webmodule.WebModuleSpringSecurity +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.springframework.boot:spring-boot-starter-security:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:security:index/spring/IsisModuleSecuritySpring.adoc[IsisModuleSecuritySpring], xref:refguide:security:index/spring/authentication/AuthenticatorSpring.adoc[AuthenticatorSpring], xref:refguide:security:index/spring/webmodule/SpringSecurityFilter.adoc[SpringSecurityFilter], xref:refguide:security:index/spring/webmodule/WebModuleSpringSecurity.adoc[WebModuleSpringSecurity]
****
|===

=== Bypass

[plantuml,Bypass,svg]
----
@startuml(id=Bypass)
title Bypass - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Bypass\n[Software System]" {
  rectangle "==Apache Isis Security - Bypass\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Bypass)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Security - Bypass
[source,yaml]
----
Group: org.apache.isis.security
Artifact: isis-security-bypass
Type: jar
Directory: /security/bypass
----
|.Components
****
o.a.i.security.bypass.authentication.AuthenticatorBypass +
o.a.i.security.bypass.authorization.AuthorizorBypass +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:security:index/bypass/IsisModuleSecurityBypass.adoc[IsisModuleSecurityBypass], xref:refguide:security:index/bypass/authentication/AuthenticatorBypass.adoc[AuthenticatorBypass], xref:refguide:security:index/bypass/authorization/AuthorizorBypass.adoc[AuthorizorBypass]
****
|===

=== Keycloak

[plantuml,Keycloak,svg]
----
@startuml(id=Keycloak)
title Keycloak - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Keycloak\n[Software System]" {
  rectangle "==Apache Isis Security - Keycloak\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Keycloak)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Security - Keycloak
[source,yaml]
----
Group: org.apache.isis.security
Artifact: isis-security-keycloak
Type: jar
Directory: /security/keycloak
----
|Authentication and Authorization using Keycloak

.Components
****
o.a.i.security.keycloak.authentication.AuthenticatorKeycloak +
o.a.i.security.keycloak.webmodule.WebModuleKeycloak +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:security:index/keycloak/IsisModuleSecurityKeycloak.adoc[IsisModuleSecurityKeycloak], xref:refguide:security:index/keycloak/authentication/AuthenticatorKeycloak.adoc[AuthenticatorKeycloak], xref:refguide:security:index/keycloak/webmodule/KeycloakFilter.adoc[KeycloakFilter], xref:refguide:security:index/keycloak/webmodule/WebModuleKeycloak.adoc[WebModuleKeycloak]
****
|===

=== Shiro

[plantuml,Shiro,svg]
----
@startuml(id=Shiro)
title Shiro - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Shiro\n[Software System]" {
  rectangle "==Apache Isis Security - Shiro\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Shiro)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Security - Shiro
[source,yaml]
----
Group: org.apache.isis.security
Artifact: isis-security-shiro
Type: jar
Directory: /security/shiro
----
|Authentication and Authorization using Apache Shiro.

.Components
****
o.a.i.security.shiro.authentication.AuthenticatorShiro +
o.a.i.security.shiro.authorization.AuthorizorShiro +
o.a.i.security.shiro.webmodule.WebModuleShiro +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.apache.shiro:shiro-core:jar:<managed> +
org.apache.shiro:shiro-web:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:security:index/shiro/IsisModuleSecurityShiro.adoc[IsisModuleSecurityShiro], xref:refguide:security:index/shiro/authentication/AuthenticatorShiro.adoc[AuthenticatorShiro], xref:refguide:security:index/shiro/authorization/AuthorizorShiro.adoc[AuthorizorShiro], xref:refguide:security:index/shiro/authorization/IsisPermission.adoc[IsisPermission], xref:refguide:security:index/shiro/authorization/IsisPermissionResolver.adoc[IsisPermissionResolver], xref:refguide:security:index/shiro/webmodule/WebModuleShiro.adoc[WebModuleShiro]
****
|===

== Viewer

[plantuml,Viewer,svg]
----
@startuml(id=Viewer)
title Viewer - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Viewer\n[Software System]" {
  rectangle "==Apache Isis Viewer - Common Model\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Viewer)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Viewer - Common Model
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-common
Type: jar
Directory: /viewers/common
----
|.Components
****
o.a.i.viewer.common.model.branding.BrandingUiModelProvider +
o.a.i.viewer.common.model.header.HeaderUiModelProvider +
o.a.i.viewer.common.model.menu.MenuUiModelProvider +
o.a.i.viewer.common.model.userprofile.UserProfileUiModelProvider +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.webjars:font-awesome:jar:5.15.2 +
****
|===

=== Restful Objects

[plantuml,Restful Objects,svg]
----
@startuml(id=Restful_Objects)
title Restful Objects - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Restful Objects\n[Software System]" {
  rectangle "==Apache Isis Viewer - RO\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Viewer - RO (AppLib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Viewer - RO (JAX-RS Resteasy v4)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Viewer - RO (Rendering)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Viewer - RO (Testing)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Viewer - RO (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 7 : ""
@enduml
----
.Projects/Modules (Restful Objects)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Viewer - RO
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-restfulobjects
Type: pom
Directory: /viewers/restfulobjects
----
|

|Apache Isis Viewer - RO (AppLib)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-restfulobjects-applib
Type: jar
Directory: /viewers/restfulobjects/applib
----
|.Dependencies
****
com.fasterxml.jackson.core:jackson-databind:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/restfulobjects/applib/IsisModuleViewerRestfulObjectsApplib.adoc[IsisModuleViewerRestfulObjectsApplib], xref:refguide:viewer:index/restfulobjects/applib/JsonRepresentation.adoc[JsonRepresentation], xref:refguide:viewer:index/restfulobjects/applib/LinkRepresentation.adoc[LinkRepresentation], xref:refguide:viewer:index/restfulobjects/applib/Rel.adoc[Rel], xref:refguide:viewer:index/restfulobjects/applib/RelDefinition.adoc[RelDefinition], xref:refguide:viewer:index/restfulobjects/applib/RepresentationType.adoc[RepresentationType], xref:refguide:viewer:index/restfulobjects/applib/RestfulHttpMethod.adoc[RestfulHttpMethod], xref:refguide:viewer:index/restfulobjects/applib/RestfulMediaType.adoc[RestfulMediaType], xref:refguide:viewer:index/restfulobjects/applib/RestfulRequest.adoc[RestfulRequest], xref:refguide:viewer:index/restfulobjects/applib/RestfulResponse.adoc[RestfulResponse], xref:refguide:viewer:index/restfulobjects/applib/boot/BootstrapResource.adoc[BootstrapResource], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/AbstractObjectMemberRepresentation.adoc[AbstractObjectMemberRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ActionResultRepresentation.adoc[ActionResultRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainObjectMemberRepresentation.adoc[DomainObjectMemberRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainObjectRepresentation.adoc[DomainObjectRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainObjectResource.adoc[DomainObjectResource], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainRepresentation.adoc[DomainRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainServiceResource.adoc[DomainServiceResource], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ListRepresentation.adoc[ListRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ObjectActionRepresentation.adoc[ObjectActionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ObjectCollectionRepresentation.adoc[ObjectCollectionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ObjectPropertyRepresentation.adoc[ObjectPropertyRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ScalarValueRepresentation.adoc[ScalarValueRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/AbstractTypeMemberRepresentation.adoc[AbstractTypeMemberRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/ActionDescriptionRepresentation.adoc[ActionDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/ActionParameterDescriptionRepresentation.adoc[ActionParameterDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/CollectionDescriptionRepresentation.adoc[CollectionDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/DomainTypeRepresentation.adoc[DomainTypeRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/DomainTypeResource.adoc[DomainTypeResource], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/PropertyDescriptionRepresentation.adoc[PropertyDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/TypeActionResultRepresentation.adoc[TypeActionResultRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/TypeListRepresentation.adoc[TypeListRepresentation], xref:refguide:viewer:index/restfulobjects/applib/dtos/ScalarValueDtoV2.adoc[ScalarValueDtoV2], xref:refguide:viewer:index/restfulobjects/applib/errors/ErrorRepresentation.adoc[ErrorRepresentation], xref:refguide:viewer:index/restfulobjects/applib/health/HealthRepresentation.adoc[HealthRepresentation], xref:refguide:viewer:index/restfulobjects/applib/health/HealthResource.adoc[HealthResource], xref:refguide:viewer:index/restfulobjects/applib/homepage/HomePageRepresentation.adoc[HomePageRepresentation], xref:refguide:viewer:index/restfulobjects/applib/homepage/HomePageResource.adoc[HomePageResource], xref:refguide:viewer:index/restfulobjects/applib/menubars/MenuBarsResource.adoc[MenuBarsResource], xref:refguide:viewer:index/restfulobjects/applib/user/UserRepresentation.adoc[UserRepresentation], xref:refguide:viewer:index/restfulobjects/applib/user/UserResource.adoc[UserResource], xref:refguide:viewer:index/restfulobjects/applib/util/JsonMapper.adoc[JsonMapper], xref:refguide:viewer:index/restfulobjects/applib/util/JsonNodeUtils.adoc[JsonNodeUtils], xref:refguide:viewer:index/restfulobjects/applib/util/MediaTypes.adoc[MediaTypes], xref:refguide:viewer:index/restfulobjects/applib/util/Parser.adoc[Parser], xref:refguide:viewer:index/restfulobjects/applib/util/PathNode.adoc[PathNode], xref:refguide:viewer:index/restfulobjects/applib/util/UrlEncodingUtils.adoc[UrlEncodingUtils], xref:refguide:viewer:index/restfulobjects/applib/version/VersionRepresentation.adoc[VersionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/version/VersionResource.adoc[VersionResource]
****

|Apache Isis Viewer - RO (JAX-RS Resteasy v4)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-restfulobjects-jaxrsresteasy4
Type: jar
Directory: /viewers/restfulobjects/jaxrs-resteasy-4
----
|JAX-RS plugin using jboss resteasy.

.Components
****
o.a.i.viewer.restfulobjects.jaxrsresteasy4.conneg.RestfulObjectsJaxbWriterForXml +
o.a.i.viewer.restfulobjects.jaxrsresteasy4.webmodule.WebModuleJaxrsResteasy4 +
****

.Dependencies
****
org.apache.isis.viewer:isis-viewer-restfulobjects-rendering:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-testing:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-viewer:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
org.jboss.resteasy:resteasy-jaxb-provider:jar:<managed> +
org.jboss.resteasy:resteasy-spring-boot-starter:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/restfulobjects/jaxrsresteasy4/IsisModuleViewerRestfulObjectsJaxrsResteasy4.adoc[IsisModuleViewerRestfulObjectsJaxrsResteasy4], xref:refguide:viewer:index/restfulobjects/jaxrsresteasy4/conneg/RestfulObjectsJaxbWriterForXml.adoc[RestfulObjectsJaxbWriterForXml], xref:refguide:viewer:index/restfulobjects/jaxrsresteasy4/webmodule/WebModuleJaxrsResteasy4.adoc[WebModuleJaxrsResteasy4]
****

|Apache Isis Viewer - RO (Rendering)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-restfulobjects-rendering
Type: jar
Directory: /viewers/restfulobjects/rendering
----
|.Components
****
o.a.i.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder +
o.a.i.viewer.restfulobjects.rendering.service.RepresentationService +
o.a.i.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest +
o.a.i.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest$RequestFilter +
o.a.i.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest$ResponseFilter +
o.a.i.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceForRestfulObjectsV1_0 +
o.a.i.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceOrgApacheIsisV1 +
o.a.i.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceOrgApacheIsisV2 +
o.a.i.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceXRoDomainType +
o.a.i.viewer.restfulobjects.rendering.service.swagger.SwaggerServiceDefault +
o.a.i.viewer.restfulobjects.rendering.service.swagger.internal.ClassExcluderDefault +
o.a.i.viewer.restfulobjects.rendering.service.swagger.internal.SwaggerSpecGenerator +
o.a.i.viewer.restfulobjects.rendering.service.swagger.internal.TaggerDefault +
o.a.i.viewer.restfulobjects.rendering.service.swagger.internal.ValuePropertyFactoryDefault +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/restfulobjects/rendering/IResourceContext.adoc[IResourceContext], xref:refguide:viewer:index/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.adoc[IsisModuleRestfulObjectsRendering], xref:refguide:viewer:index/restfulobjects/rendering/service/RepresentationService.adoc[RepresentationService], xref:refguide:viewer:index/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.adoc[AcceptHeaderServiceForRest], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationService.adoc[ContentNegotiationService], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceAbstract.adoc[ContentNegotiationServiceAbstract], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.adoc[ContentNegotiationServiceForRestfulObjectsV1_0], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.adoc[ContentNegotiationServiceOrgApacheIsisV1], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV2.adoc[ContentNegotiationServiceOrgApacheIsisV2], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.adoc[ContentNegotiationServiceXRoDomainType], xref:refguide:viewer:index/restfulobjects/rendering/service/swagger/SwaggerServiceMenu.adoc[SwaggerServiceMenu]
****

|Apache Isis Viewer - RO (Testing)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-restfulobjects-testing
Type: jar
Directory: /viewers/restfulobjects/testing
----
|.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-viewer:jar:<managed> +
****

|Apache Isis Viewer - RO (Viewer)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-restfulobjects-viewer
Type: jar
Directory: /viewers/restfulobjects/viewer
----
|.Components
****
o.a.i.viewer.restfulobjects.viewer.mappers.ExceptionMapperForObjectNotFound +
o.a.i.viewer.restfulobjects.viewer.mappers.ExceptionMapperForRestfulObjectsApplication +
o.a.i.viewer.restfulobjects.viewer.mappers.ExceptionMapperForRuntimeException +
o.a.i.viewer.restfulobjects.viewer.resources.DomainObjectResourceServerside +
o.a.i.viewer.restfulobjects.viewer.resources.DomainServiceResourceServerside +
o.a.i.viewer.restfulobjects.viewer.resources.DomainTypeResourceServerside +
o.a.i.viewer.restfulobjects.viewer.resources.HomePageResourceServerside +
o.a.i.viewer.restfulobjects.viewer.resources.ImageResourceServerside +
o.a.i.viewer.restfulobjects.viewer.resources.MenuBarsResourceServerside +
o.a.i.viewer.restfulobjects.viewer.resources.SwaggerSpecResource +
o.a.i.viewer.restfulobjects.viewer.resources.UserResourceServerside +
o.a.i.viewer.restfulobjects.viewer.resources.VersionResourceServerside +
****

.Dependencies
****
com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.apache.isis.viewer:isis-viewer-common:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-rendering:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/restfulobjects/viewer/IsisModuleViewerRestfulObjectsViewer.adoc[IsisModuleViewerRestfulObjectsViewer]
****
|===

=== Wicket

[plantuml,Wicket,svg]
----
@startuml(id=Wicket)
title Wicket - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Wicket\n[Software System]" {
  rectangle "==Apache Isis Viewer - Wicket\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Viewer - Wicket (Model)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Viewer - Wicket (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Viewer - Wicket (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
@enduml
----
.Projects/Modules (Wicket)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Viewer - Wicket
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-wicket
Type: pom
Directory: /viewers/wicket
----
|

|Apache Isis Viewer - Wicket (Model)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-wicket-model
Type: jar
Directory: /viewers/wicket/model
----
|.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.apache.isis.viewer:isis-viewer-common:jar:<managed> +
org.apache.wicket:wicket-core:jar:<managed> +
org.apache.wicket:wicket-extensions:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/wicket/model/IsisModuleViewerWicketModel.adoc[IsisModuleViewerWicketModel]
****

|Apache Isis Viewer - Wicket (UI Components)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-wicket-ui
Type: jar
Directory: /viewers/wicket/ui
----
|.Components
****
o.a.i.viewer.wicket.ui.app.logout.LogoutHandlerWkt +
o.a.i.viewer.wicket.ui.components.widgets.themepicker.IsisWicketThemeSupportDefault +
****

.Dependencies
****
com.google.guava:guava:jar:<managed> +
de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed> +
de.agilecoders.wicket:wicket-bootstrap-extensions:jar:<managed> +
de.agilecoders.wicket:wicket-bootstrap-themes:jar:<managed> +
de.agilecoders.wicket.webjars:wicket-webjars:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-model:jar:<managed> +
org.apache.wicket:wicket-auth-roles:jar:<managed> +
org.apache.wicket:wicket-core:jar:<managed> +
org.apache.wicket:wicket-devutils:jar:<managed> +
org.apache.wicket:wicket-extensions:jar:<managed> +
org.apache.wicket:wicket-spring:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
org.slf4j:slf4j-api:jar:${slf4j-api.version} +
org.webjars:jquery-ui:jar:<managed> +
org.webjars:select2:jar:<managed> +
org.webjars.bower:summernote:jar:<managed> +
org.wicketstuff:wicketstuff-select2:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/wicket/ui/IsisModuleViewerWicketUi.adoc[IsisModuleViewerWicketUi]
****

|Apache Isis Viewer - Wicket (Viewer)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-wicket-viewer
Type: jar
Directory: /viewers/wicket/viewer
----
|.Components
****
o.a.i.viewer.wicket.viewer.registries.components.ComponentFactoryRegistrarDefault +
o.a.i.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault +
o.a.i.viewer.wicket.viewer.registries.pages.PageClassListDefault +
o.a.i.viewer.wicket.viewer.registries.pages.PageClassRegistryDefault +
o.a.i.viewer.wicket.viewer.registries.pages.PageNavigationServiceDefault +
o.a.i.viewer.wicket.viewer.services.BookmarkUiServiceWicket +
o.a.i.viewer.wicket.viewer.services.DeepLinkServiceWicket +
o.a.i.viewer.wicket.viewer.services.HintStoreUsingWicketSession +
o.a.i.viewer.wicket.viewer.services.ImageResourceCacheClassPath +
o.a.i.viewer.wicket.viewer.services.LocaleProviderWicket +
o.a.i.viewer.wicket.viewer.services.TranslationsResolverWicket +
o.a.i.viewer.wicket.viewer.services.WicketViewerSettingsDefault +
o.a.i.viewer.wicket.viewer.services.mementos.ObjectMementoServiceWicket +
o.a.i.viewer.wicket.viewer.webmodule.WebModuleWicket +
****

.Dependencies
****
commons-io:commons-io:jar:<managed> +
de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed> +
net.ftlines.wicket-source:wicket-source:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
org.apache.wicket:wicket-auth-roles:jar:<managed> +
org.apache.wicket:wicket-spring:jar:<managed> +
org.jmock:jmock-junit4:jar:<managed> +
org.springframework:spring-web:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/wicket/viewer/IsisModuleViewerWicketViewer.adoc[IsisModuleViewerWicketViewer], xref:refguide:viewer:index/wicket/viewer/mixins/Object_clearHints.adoc[Object_clearHints]
****
|===

== Valuetypes

[plantuml,Valuetypes,svg]
----
@startuml(id=Valuetypes)
title Valuetypes - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Valuetypes\n[Software System]" {
  rectangle "==Apache Isis Val - SSE (ui)\n<size:10>[Container: packaging: pom]</size>" <<6>> as 6
  rectangle "==Apache Isis Val - Server Sent Events\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Val - Server Sent Events (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Val - Server Sent Events (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
  rectangle "==Apache Isis Val - Server Sent Events (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
  rectangle "==Apache Isis Value types\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
6 .[#707070].> 7 : ""
3 .[#707070].> 6 : ""
3 .[#707070].> 4 : ""
3 .[#707070].> 5 : ""
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (Valuetypes)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Value types
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes
Type: pom
Directory: /valuetypes
----
|Value types for use within Apache Isis applications.

.Dependencies
****
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Val - Server Sent Events (parent)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-sse
Type: pom
Directory: /valuetypes/sse
----
|Dynamically updating HTML markup

|Apache Isis Val - Server Sent Events
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-sse-applib
Type: jar
Directory: /valuetypes/sse/applib
----
|.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/sse/applib/IsisModuleValSseApplib.adoc[IsisModuleValSseApplib], xref:refguide:valuetypes:index/sse/applib/annotations/ServerSentEvents.adoc[ServerSentEvents], xref:refguide:valuetypes:index/sse/applib/annotations/SseSource.adoc[SseSource], xref:refguide:valuetypes:index/sse/applib/service/SseChannel.adoc[SseChannel], xref:refguide:valuetypes:index/sse/applib/service/SseService.adoc[SseService]
****

|Apache Isis Val - Server Sent Events (metamodel)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-sse-metamodel
Type: jar
Directory: /valuetypes/sse/metamodel
----
|.Components
****
o.a.i.valuetypes.sse.metamodel.facets.SseAnnotationFacetFactory$Register +
****

.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-sse-applib:jar:<managed> +
****

|Apache Isis Val - SSE (ui)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-sse-ui
Type: pom
Directory: /valuetypes/sse/ui
----
|.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-sse-applib:jar:<managed> +
****

|Apache Isis Val - Server Sent Events (ui wicket)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-sse-ui-wkt
Type: jar
Directory: /valuetypes/sse/ui/wicket
----
|.Components
****
o.a.i.valuetypes.sse.ui.wkt.markup.ListeningMarkupPanelFactoriesForWicket$Parented +
o.a.i.valuetypes.sse.ui.wkt.markup.ListeningMarkupPanelFactoriesForWicket$Standalone +
o.a.i.valuetypes.sse.ui.wkt.services.SseServiceDefault +
o.a.i.valuetypes.sse.ui.wkt.webmodule.WebModuleServerSentEvents +
****

.Dependencies
****
org.apache.isis.valuetypes:isis-valuetypes-sse-metamodel:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/sse/ui/wkt/IsisModuleValSseUiWkt.adoc[IsisModuleValSseUiWkt], xref:refguide:valuetypes:index/sse/ui/wkt/services/SseServiceDefault.adoc[SseServiceDefault], xref:refguide:valuetypes:index/sse/ui/wkt/webmodule/WebModuleServerSentEvents.adoc[WebModuleServerSentEvents]
****
|===

=== Asciidoc

[plantuml,Asciidoc,svg]
----
@startuml(id=Asciidoc)
title Asciidoc - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<9>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Asciidoc\n[Software System]" {
  rectangle "==Apache Isis Val - Asciidoctor (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Val - Asciidoctor (Persistence)\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
  rectangle "==Apache Isis Val - Asciidoctor (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Val - Asciidoctor (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Val - Asciidoctor (persistence jdo DN5)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Val - Asciidoctor (ui vaadin)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
  rectangle "==Apache Isis Val - Asciidoctor (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
  rectangle "==Apache Isis Val - Asciidoctor (ui)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
}
5 .[#707070].> 6 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 3 : ""
2 .[#707070].> 7 : ""
7 .[#707070].> 9 : ""
@enduml
----
.Projects/Modules (Asciidoc)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Val - Asciidoctor (parent)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc
Type: pom
Directory: /valuetypes/asciidoc
----
|Asciidoc value type.

|Apache Isis Val - Asciidoctor (applib)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc-applib
Type: jar
Directory: /valuetypes/asciidoc/applib
----
|.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.asciidoctor:asciidoctorj-api:jar:${asciidoctorj.version} +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/asciidoc/applib/IsisModuleValAsciidocApplib.adoc[IsisModuleValAsciidocApplib], xref:refguide:valuetypes:index/asciidoc/applib/jaxb/AsciiDocJaxbAdapter.adoc[AsciiDocJaxbAdapter], xref:refguide:valuetypes:index/asciidoc/applib/value/AsciiDoc.adoc[AsciiDoc]
****

|Apache Isis Val - Asciidoctor (MetaModel)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc-metamodel
Type: jar
Directory: /valuetypes/asciidoc/metamodel
----
|.Components
****
o.a.i.valuetypes.asciidoc.metamodel.AsciiDocMetaModelRefiner +
o.a.i.valuetypes.asciidoc.metamodel.AsciiDocValueTypeProvider +
****

.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/asciidoc/metamodel/IsisModuleValAsciidocMetaModel.adoc[IsisModuleValAsciidocMetaModel]
****

|Apache Isis Val - Asciidoctor (Persistence)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc-persistence
Type: pom
Directory: /valuetypes/asciidoc/persistence
----
|.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-applib:jar:<managed> +
****

|Apache Isis Val - Asciidoctor (persistence jdo DN5)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc-persistence-jdo-dn5
Type: jar
Directory: /valuetypes/asciidoc/persistence/jdo-dn5
----
|.Dependencies
****
org.datanucleus:datanucleus-core:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/asciidoc/persistence/jdo/dn5/IsisModuleValAsciidocPersistenceJdoDn5.adoc[IsisModuleValAsciidocPersistenceJdoDn5], xref:refguide:valuetypes:index/asciidoc/persistence/jdo/dn5/converters/IsisAsciiDocConverter.adoc[IsisAsciiDocConverter]
****

|Apache Isis Val - Asciidoctor (ui)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc-ui
Type: pom
Directory: /valuetypes/asciidoc/ui
----
|.Dependencies
****
com.github.jnr:jnr-constants:jar:0.10.1 +
com.github.jnr:jnr-enxio:jar:0.32.4 +
com.github.jnr:jnr-posix:jar:3.1.5 +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-applib:jar:<managed> +
org.asciidoctor:asciidoctorj:jar:${asciidoctorj.version} +
****

|Apache Isis Val - Asciidoctor (ui vaadin)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc-ui-vaa
Type: jar
Directory: /valuetypes/asciidoc/ui/vaadin
----
|.Components
****
o.a.i.valuetypes.asciidoc.ui.vaa.components.AsciiDocFieldFactoryVaa +
****

.Dependencies
****
org.apache.isis.incubator.viewer:isis-viewer-vaadin-ui:jar:${project.version} +
****

|Apache Isis Val - Asciidoctor (ui wicket)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc-ui-wkt
Type: jar
Directory: /valuetypes/asciidoc/ui/wicket
----
|.Components
****
o.a.i.valuetypes.asciidoc.ui.wkt.components.AsciiDocPanelFactoriesWkt$Parented +
o.a.i.valuetypes.asciidoc.ui.wkt.components.AsciiDocPanelFactoriesWkt$Standalone +
o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.chg.v2.ChangesDtoPanelFactoriesWkt$Parented +
o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.chg.v2.ChangesDtoPanelFactoriesWkt$Standalone +
o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.cmd.v2.CommandDtoPanelFactoriesWkt$Parented +
o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.cmd.v2.CommandDtoPanelFactoriesWkt$Standalone +
o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.ixn.v2.InteractionDtoPanelFactoriesWkt$Parented +
o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.ixn.v2.InteractionDtoPanelFactoriesWkt$Standalone +
****

.Dependencies
****
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.adoc[IsisModuleValAsciidocUiWkt]
****
|===

=== Markdown

[plantuml,Markdown,svg]
----
@startuml(id=Markdown)
title Markdown - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Markdown\n[Software System]" {
  rectangle "==Apache Isis Val - Markdown (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Val - Markdown (Persistence)\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
  rectangle "==Apache Isis Val - Markdown (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Val - Markdown (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Val - Markdown (persistence jdo DN5)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Val - Markdown (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
  rectangle "==Apache Isis Val - Markdown (ui)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
}
5 .[#707070].> 6 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 3 : ""
2 .[#707070].> 7 : ""
7 .[#707070].> 8 : ""
@enduml
----
.Projects/Modules (Markdown)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Val - Markdown (parent)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-markdown
Type: pom
Directory: /valuetypes/markdown
----
|Markdown value type.

|Apache Isis Val - Markdown (applib)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-markdown-applib
Type: jar
Directory: /valuetypes/markdown/applib
----
|.Dependencies
****
com.vladsch.flexmark:flexmark-all:jar:${flexmark.version} +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/markdown/applib/IsisModuleValMarkdownApplib.adoc[IsisModuleValMarkdownApplib], xref:refguide:valuetypes:index/markdown/applib/jaxb/MarkdownJaxbAdapter.adoc[MarkdownJaxbAdapter], xref:refguide:valuetypes:index/markdown/applib/value/Converter.adoc[Converter]
****

|Apache Isis Val - Markdown (MetaModel)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-markdown-metamodel
Type: jar
Directory: /valuetypes/markdown/metamodel
----
|.Components
****
o.a.i.valuetypes.markdown.metamodel.MarkdownMetaModelRefiner +
o.a.i.valuetypes.markdown.metamodel.MarkdownValueTypeProvider +
****

.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/markdown/metamodel/IsisModuleValMarkdownMetaModel.adoc[IsisModuleValMarkdownMetaModel]
****

|Apache Isis Val - Markdown (Persistence)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-markdown-persistence
Type: pom
Directory: /valuetypes/markdown/persistence
----
|.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed> +
****

|Apache Isis Val - Markdown (persistence jdo DN5)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-markdown-persistence-jdo-dn5
Type: jar
Directory: /valuetypes/markdown/persistence/jdo-dn5
----
|.Dependencies
****
org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed> +
org.datanucleus:datanucleus-core:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/markdown/persistence/jdo/dn5/IsisModuleValMarkdownPersistenceJdoDn5.adoc[IsisModuleValMarkdownPersistenceJdoDn5], xref:refguide:valuetypes:index/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.adoc[IsisMarkdownConverter]
****

|Apache Isis Val - Markdown (ui)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-markdown-ui
Type: pom
Directory: /valuetypes/markdown/ui
----
|.Dependencies
****
com.vladsch.flexmark:flexmark-all:jar:${flexmark.version} +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed> +
org.jsoup:jsoup:jar:<managed> +
****

|Apache Isis Val - Markdown (ui wicket)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-markdown-ui-wkt
Type: jar
Directory: /valuetypes/markdown/ui/wicket
----
|.Dependencies
****
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/markdown/ui/wkt/IsisModuleValMarkdownUiWkt.adoc[IsisModuleValMarkdownUiWkt]
****
|===

=== SSE

== Mappings

[plantuml,Mappings,svg]
----
@startuml(id=Mappings)
title Mappings - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Mappings\n[Software System]" {
  rectangle "==Apache Isis Mappings\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Mappings)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Mappings
[source,yaml]
----
Group: org.apache.isis.mappings
Artifact: isis-mappings
Type: pom
Directory: /mappings
----
|Libraries and tools to map one bounded context (usually an Apache Isis application) to some other BC (usually
_not_ an Apache Isis application).

.Dependencies
****
org.projectlombok:lombok:jar:<managed> +
****
|===

=== JAX-RS Client Library

[plantuml,JAX-RS Client Library,svg]
----
@startuml(id=JAX-RS_Client_Library)
title JAX-RS Client Library - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "JAX-RS Client Library\n[Software System]" {
  rectangle "==Apache Isis Map - JaxRS Client (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Map - JaxRS Client (impl)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Map - JaxRS Client (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
@enduml
----
.Projects/Modules (JAX-RS Client Library)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Map - JaxRS Client (parent)
[source,yaml]
----
Group: org.apache.isis.mappings
Artifact: isis-mappings-jaxrsclient
Type: pom
Directory: /mappings/jaxrsclient
----
|Integrates JaxRS Client Library

|Apache Isis Map - JaxRS Client (applib)
[source,yaml]
----
Group: org.apache.isis.mappings
Artifact: isis-mappings-jaxrsclient-applib
Type: jar
Directory: /mappings/jaxrsclient/applib
----
|.Dependencies
****
javax:javaee-api:jar:<managed> +
org.springframework:spring-context:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/jaxrsclient/applib/IsisModuleExtJaxRsClientApplib.adoc[IsisModuleExtJaxRsClientApplib], xref:refguide:extensions:index/jaxrsclient/applib/client/JaxRsClient.adoc[JaxRsClient], xref:refguide:extensions:index/jaxrsclient/applib/client/JaxRsResponse.adoc[JaxRsResponse]
****

|Apache Isis Map - JaxRS Client (impl)
[source,yaml]
----
Group: org.apache.isis.mappings
Artifact: isis-mappings-jaxrsclient-impl
Type: jar
Directory: /mappings/jaxrsclient/testlib
----
|.Dependencies
****
org.apache.isis.mappings:isis-mappings-jaxrsclient-applib:jar:<managed> +
****
|===

=== REST Client

[plantuml,REST Client,svg]
----
@startuml(id=REST_Client)
title REST Client - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "REST Client\n[Software System]" {
  rectangle "==Apache Isis Ext - REST Client (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Ext - REST Client (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (REST Client)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Ext - REST Client (parent)
[source,yaml]
----
Group: org.apache.isis.mappings
Artifact: isis-mappings-restclient
Type: pom
Directory: /mappings/restclient
----
|A client for the Restful Objects Viewer

|Apache Isis Ext - REST Client (applib)
[source,yaml]
----
Group: org.apache.isis.mappings
Artifact: isis-mappings-restclient-applib
Type: jar
Directory: /mappings/restclient/applib
----
|A client for the Restful Objects Viewer

.Dependencies
****
org.apache.isis.viewer:isis-viewer-restfulobjects-applib:jar:<managed> +
org.springframework:spring-context:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/restclient/ActionParameterListBuilder.adoc[ActionParameterListBuilder], xref:refguide:extensions:index/restclient/IsisModuleExtRestClient.adoc[IsisModuleExtRestClient], xref:refguide:extensions:index/restclient/ResponseDigest.adoc[ResponseDigest], xref:refguide:extensions:index/restclient/RestfulClient.adoc[RestfulClient], xref:refguide:extensions:index/restclient/RestfulClientConfig.adoc[RestfulClientConfig], xref:refguide:extensions:index/restclient/RestfulClientException.adoc[RestfulClientException], xref:refguide:extensions:index/restclient/auth/BasicAuthFilter.adoc[BasicAuthFilter], xref:refguide:extensions:index/restclient/log/ClientConversationFilter.adoc[ClientConversationFilter], xref:refguide:extensions:index/restclient/log/ClientConversationLogger.adoc[ClientConversationLogger]
****
|===

== Extensions

[plantuml,Extensions,svg]
----
@startuml(id=Extensions)
title Extensions - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<11>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<22>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<23>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<12>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<24>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<13>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<14>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<15>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<16>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<17>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<18>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<19>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<9>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<20>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<21>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<10>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Extensions\n[Software System]" {
  rectangle "==Apache Isis Ext - CORS (impl)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Ext - CORS (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
  rectangle "==Apache Isis Ext - Flyway\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
  rectangle "==Apache Isis Ext - Flyway Impl\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
  rectangle "==Apache Isis Ext - Sec Man\n<size:10>[Container: packaging: pom]</size>" <<16>> as 16
  rectangle "==Apache Isis Ext - Sec Man API\n<size:10>[Container: packaging: jar]</size>" <<17>> as 17
  rectangle "==Apache Isis Ext - Sec Man Encryption (Using jbcrypt)\n<size:10>[Container: packaging: jar]</size>" <<18>> as 18
  rectangle "==Apache Isis Ext - Sec Man Model\n<size:10>[Container: packaging: jar]</size>" <<19>> as 19
  rectangle "==Apache Isis Ext - Sec Man Persistence (Using JDO)\n<size:10>[Container: packaging: jar]</size>" <<20>> as 20
  rectangle "==Apache Isis Ext - Sec Man Persistence (Using JPA)\n<size:10>[Container: packaging: jar]</size>" <<21>> as 21
  rectangle "==Apache Isis Ext - Sec Man Realm (Using Shiro)\n<size:10>[Container: packaging: jar]</size>" <<22>> as 22
  rectangle "==Apache Isis Ext - Security - Shiro LDAP Realm (impl)\n<size:10>[Container: packaging: jar]</size>" <<24>> as 24
  rectangle "==Apache Isis Ext - Security - Shiro LDAP Realm (parent)\n<size:10>[Container: packaging: pom]</size>" <<23>> as 23
  rectangle "==Apache Isis Ext - Wicket Viewer - Excel Download (parent)\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
  rectangle "==Apache Isis Ext - Wicket Viewer - Excel Download (ui)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (applib)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
  rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (parent)\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
  rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (ui)\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (applib)\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<14>> as 14
  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (parent)\n<size:10>[Container: packaging: pom]</size>" <<12>> as 12
  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (ui)\n<size:10>[Container: packaging: jar]</size>" <<15>> as 15
  rectangle "==Apache Isis Extensions\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
3 .[#707070].> 4 : ""
7 .[#707070].> 8 : ""
16 .[#707070].> 17 : ""
16 .[#707070].> 18 : ""
16 .[#707070].> 19 : ""
16 .[#707070].> 20 : ""
16 .[#707070].> 21 : ""
16 .[#707070].> 22 : ""
23 .[#707070].> 24 : ""
5 .[#707070].> 6 : ""
9 .[#707070].> 10 : ""
9 .[#707070].> 11 : ""
12 .[#707070].> 13 : ""
12 .[#707070].> 14 : ""
12 .[#707070].> 15 : ""
2 .[#707070].> 3 : ""
2 .[#707070].> 7 : ""
2 .[#707070].> 16 : ""
2 .[#707070].> 23 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 9 : ""
2 .[#707070].> 12 : ""
@enduml
----
.Projects/Modules (Extensions)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Extensions
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions
Type: pom
Directory: /extensions
----
|Extensions to the Apache Isis framework itself.
These are _not_ intended to be called by the domain logic of an Apache Isis application (see instead org.apache.isis.platform).

.Dependencies
****
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Ext - CORS (parent)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-cors
Type: pom
Directory: /extensions/vro/cors
----
|Implementation of CORS Filter (using ebay filter)

|Apache Isis Ext - CORS (impl)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-cors-impl
Type: jar
Directory: /extensions/vro/cors/impl
----
|.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.springframework:spring-web:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/cors/impl/IsisModuleExtCorsImpl.adoc[IsisModuleExtCorsImpl]
****

|Apache Isis Ext - Wicket Viewer - Excel Download (parent)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-exceldownload
Type: pom
Directory: /extensions/vw/exceldownload
----
|A component for Apache Isis' Wicket viewer, providing an alternative representation of collections to be downloaded as an Excel spreadsheet.

|Apache Isis Ext - Wicket Viewer - Excel Download (ui)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-exceldownload-ui
Type: jar
Directory: /extensions/vw/exceldownload/ui
----
|.Components
****
o.a.i.extensions.viewer.wicket.exceldownload.ui.components.CollectionContentsAsExcelFactory +
****

.Dependencies
****
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
org.apache.poi:poi-ooxml:jar:<managed> +
org.apache.poi:poi-ooxml-schemas:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/viewer/wicket/exceldownload/ui/IsisModuleExtExcelDownloadUi.adoc[IsisModuleExtExcelDownloadUi], xref:refguide:extensions:index/viewer/wicket/exceldownload/ui/components/CollectionContentsAsExcel.adoc[CollectionContentsAsExcel], xref:refguide:extensions:index/viewer/wicket/exceldownload/ui/components/CollectionContentsAsExcelFactory.adoc[CollectionContentsAsExcelFactory]
****

|Apache Isis Ext - Flyway
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-flyway
Type: pom
Directory: /extensions/core/flyway
----
|Integrates Flyway when using any (relational) persistence store

|Apache Isis Ext - Flyway Impl
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-flyway-impl
Type: jar
Directory: /extensions/core/flyway/impl
----
|.Dependencies
****
org.apache.isis.core:isis-core-config:jar:<managed> +
org.flywaydb:flyway-core:jar:<managed> +
org.springframework:spring-context:jar:<managed> +
org.springframework:spring-jdbc:jar:<managed> +
org.springframework.boot:spring-boot-autoconfigure:jar:<managed> +
****

|Apache Isis Ext - Wicket Viewer - fullcalendar (parent)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-fullcalendar
Type: pom
Directory: /extensions/vw/fullcalendar
----
|A component for Apache Isis' Wicket viewer, displaying collections of objects that have a date on a fullcalendar.io (JavaScript widget).

|Apache Isis Ext - Wicket Viewer - fullcalendar (applib)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-fullcalendar-applib
Type: jar
Directory: /extensions/vw/fullcalendar/applib
----
|.Dependencies
****
de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/fullcalendar/applib/CalendarEventable.adoc[CalendarEventable], xref:refguide:extensions:index/fullcalendar/applib/Calendarable.adoc[Calendarable], xref:refguide:extensions:index/fullcalendar/applib/IsisModuleExtFullCalendarApplib.adoc[IsisModuleExtFullCalendarApplib], xref:refguide:extensions:index/fullcalendar/applib/spi/CalendarableDereferencingService.adoc[CalendarableDereferencingService], xref:refguide:extensions:index/fullcalendar/applib/value/CalendarEvent.adoc[CalendarEvent]
****

|Apache Isis Ext - Wicket Viewer - fullcalendar (ui)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-fullcalendar-ui
Type: jar
Directory: /extensions/vw/fullcalendar/ui
----
|.Dependencies
****
net.ftlines.wicket-fullcalendar:wicket-fullcalendar-core:jar:<managed> +
org.apache.isis.extensions:isis-extensions-fullcalendar-applib:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/fullcalendar/ui/component/IsisModuleExtFullCalendarUi.adoc[IsisModuleExtFullCalendarUi]
****

|Apache Isis Ext - Wicket Viewer - pdf.js (parent)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-pdfjs
Type: pom
Directory: /extensions/vw/pdfjs
----
|A component for Apache Isis' Wicket viewer, allowing BLOBs containing PDFs to be rendered in a panel using pdf.js.

|Apache Isis Ext - Wicket Viewer - pdf.js (applib)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-pdfjs-applib
Type: jar
Directory: /extensions/vw/pdfjs/applib
----
|.Dependencies
****
de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/viewer/wicket/pdfjs/applib/annotations/PdfJsViewer.adoc[PdfJsViewer], xref:refguide:extensions:index/viewer/wicket/pdfjs/applib/config/PdfJsConfig.adoc[PdfJsConfig], xref:refguide:extensions:index/viewer/wicket/pdfjs/applib/config/Scale.adoc[Scale], xref:refguide:extensions:index/viewer/wicket/pdfjs/applib/spi/PdfJsViewerAdvisor.adoc[PdfJsViewerAdvisor]
****

|Apache Isis Ext - Wicket Viewer - pdf.js (metamodel)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-pdfjs-metamodel
Type: jar
Directory: /extensions/vw/pdfjs/metamodel
----
|.Components
****
o.a.i.extensions.viewer.wicket.pdfjs.metamodel.facet.PdfJsViewerFacetFromAnnotationFactory$Register +
****

.Dependencies
****
de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed> +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.extensions:isis-extensions-pdfjs-applib:jar:<managed> +
****

|Apache Isis Ext - Wicket Viewer - pdf.js (ui)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-pdfjs-ui
Type: jar
Directory: /extensions/vw/pdfjs/ui
----
|.Components
****
o.a.i.extensions.viewer.wicket.pdfjs.ui.components.PdfJsViewerPanelComponentFactory +
****

.Dependencies
****
org.apache.isis.extensions:isis-extensions-pdfjs-metamodel:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/viewer/wicket/pdfjs/ui/IsisModuleExtPdfjsUi.adoc[IsisModuleExtPdfjsUi]
****

|Apache Isis Ext - Sec Man
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-secman
Type: pom
Directory: /extensions/security/secman
----
|.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.core:isis-core-security:jar:<managed> +
****

|Apache Isis Ext - Sec Man API
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-secman-api
Type: jar
Directory: /extensions/security/secman/api
----
|.Components
****
o.a.i.extensions.secman.api.authorizor.AuthorizorSecman +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/api/IsisModuleExtSecmanApi.adoc[IsisModuleExtSecmanApi], xref:refguide:extensions:index/secman/api/SecmanConfiguration.adoc[SecmanConfiguration], xref:refguide:extensions:index/secman/api/SecurityRealm.adoc[SecurityRealm], xref:refguide:extensions:index/secman/api/SecurityRealmCharacteristic.adoc[SecurityRealmCharacteristic], xref:refguide:extensions:index/secman/api/SecurityRealmService.adoc[SecurityRealmService], xref:refguide:extensions:index/secman/api/authorizor/AuthorizorSecman.adoc[AuthorizorSecman], xref:refguide:extensions:index/secman/api/encryption/PasswordEncryptionService.adoc[PasswordEncryptionService], xref:refguide:extensions:index/secman/api/encryption/PasswordEncryptionServiceNone.adoc[PasswordEncryptionServiceNone], xref:refguide:extensions:index/secman/api/events/UserCreatedEvent.adoc[UserCreatedEvent], xref:refguide:extensions:index/secman/api/permission/ApplicationPermission.adoc[ApplicationPermission], xref:refguide:extensions:index/secman/api/permission/ApplicationPermissionMode.adoc[ApplicationPermissionMode], xref:refguide:extensions:index/secman/api/permission/ApplicationPermissionRepository.adoc[ApplicationPermissionRepository], xref:refguide:extensions:index/secman/api/permission/ApplicationPermissionRule.adoc[ApplicationPermissionRule], xref:refguide:extensions:index/secman/api/permission/ApplicationPermissionValue.adoc[ApplicationPermissionValue], xref:refguide:extensions:index/secman/api/permission/ApplicationPermissionValueSet.adoc[ApplicationPermissionValueSet], xref:refguide:extensions:index/secman/api/permission/PermissionsEvaluationService.adoc[PermissionsEvaluationService], xref:refguide:extensions:index/secman/api/permission/PermissionsEvaluationServiceAbstract.adoc[PermissionsEvaluationServiceAbstract], xref:refguide:extensions:index/secman/api/permission/PermissionsEvaluationServiceAllowBeatsVeto.adoc[PermissionsEvaluationServiceAllowBeatsVeto], xref:refguide:extensions:index/secman/api/permission/PermissionsEvaluationServiceVetoBeatsAllow.adoc[PermissionsEvaluationServiceVetoBeatsAllow], xref:refguide:extensions:index/secman/api/role/ApplicationRole.adoc[ApplicationRole], xref:refguide:extensions:index/secman/api/role/ApplicationRoleRepository.adoc[ApplicationRoleRepository], xref:refguide:extensions:index/secman/api/tenancy/ApplicationTenancy.adoc[ApplicationTenancy], xref:refguide:extensions:index/secman/api/tenancy/ApplicationTenancyEvaluator.adoc[ApplicationTenancyEvaluator], xref:refguide:extensions:index/secman/api/tenancy/ApplicationTenancyRepository.adoc[ApplicationTenancyRepository], xref:refguide:extensions:index/secman/api/tenancy/HasAtPath.adoc[HasAtPath], xref:refguide:extensions:index/secman/api/user/AccountType.adoc[AccountType], xref:refguide:extensions:index/secman/api/user/ApplicationUser.adoc[ApplicationUser], xref:refguide:extensions:index/secman/api/user/ApplicationUserRepository.adoc[ApplicationUserRepository], xref:refguide:extensions:index/secman/api/user/ApplicationUserStatus.adoc[ApplicationUserStatus]
****

|Apache Isis Ext - Sec Man Encryption (Using jbcrypt)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-secman-encryption-jbcrypt
Type: jar
Directory: /extensions/security/secman/encryption-jbcrypt
----
|.Components
****
o.a.i.extensions.secman.encryption.jbcrypt.services.PasswordEncryptionServiceUsingJBcrypt +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed> +
org.mindrot:jbcrypt:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/encryption/jbcrypt/IsisModuleExtSecmanEncryptionJbcrypt.adoc[IsisModuleExtSecmanEncryptionJbcrypt], xref:refguide:extensions:index/secman/encryption/jbcrypt/services/PasswordEncryptionServiceUsingJBcrypt.adoc[PasswordEncryptionServiceUsingJBcrypt]
****

|Apache Isis Ext - Sec Man Model
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-secman-model
Type: jar
Directory: /extensions/security/secman/model
----
|.Components
****
o.a.i.extensions.secman.model.facets.TenantedAuthorizationFacetFactory$Register +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/model/IsisModuleExtSecmanModel.adoc[IsisModuleExtSecmanModel], xref:refguide:extensions:index/secman/model/dom/user/MeService.adoc[MeService]
****

|Apache Isis Ext - Sec Man Persistence (Using JDO)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-secman-persistence-jdo
Type: jar
Directory: /extensions/security/secman/persistence-jdo
----
|.Components
****
o.a.i.extensions.secman.jdo.dom.permission.ApplicationPermissionRepository +
o.a.i.extensions.secman.jdo.dom.role.ApplicationRoleRepository +
o.a.i.extensions.secman.jdo.dom.tenancy.ApplicationTenancyRepository +
o.a.i.extensions.secman.jdo.dom.user.ApplicationUserRepository +
o.a.i.extensions.secman.jdo.seed.SeedSecurityModuleService +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-datanucleus:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/jdo/IsisModuleExtSecmanPersistenceJdo.adoc[IsisModuleExtSecmanPersistenceJdo], xref:refguide:extensions:index/secman/jdo/seed/SeedSecurityModuleService.adoc[SeedSecurityModuleService], xref:refguide:extensions:index/secman/jdo/seed/SeedUsersAndRolesFixtureScript.adoc[SeedUsersAndRolesFixtureScript], xref:refguide:extensions:index/secman/jdo/seed/scripts/GlobalTenancy.adoc[GlobalTenancy], xref:refguide:extensions:index/secman/jdo/seed/scripts/IsisExtFixturesFixtureResultsRoleAndPermissions.adoc[IsisExtFixturesFixtureResultsRoleAndPermissions], xref:refguide:extensions:index/secman/jdo/seed/scripts/IsisExtSecmanAdminRoleAndPermissions.adoc[IsisExtSecmanAdminRoleAndPermissions], xref:refguide:extensions:index/secman/jdo/seed/scripts/IsisExtSecmanAdminUser.adoc[IsisExtSecmanAdminUser], xref:refguide:extensions:index/secman/jdo/seed/scripts/IsisExtSecmanFixtureRoleAndPermissions.adoc[IsisExtSecmanFixtureRoleAndPermissions], xref:refguide:extensions:index/secman/jdo/seed/scripts/IsisExtSecmanRegularUserRoleAndPermissions.adoc[IsisExtSecmanRegularUserRoleAndPermissions]
****

|Apache Isis Ext - Sec Man Persistence (Using JPA)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-secman-persistence-jpa
Type: jar
Directory: /extensions/security/secman/persistence-jpa
----
|.Components
****
o.a.i.extensions.secman.jpa.dom.permission.ApplicationPermissionRepository +
o.a.i.extensions.secman.jpa.dom.role.ApplicationRoleRepository +
o.a.i.extensions.secman.jpa.dom.tenancy.ApplicationTenancyRepository +
o.a.i.extensions.secman.jpa.dom.user.ApplicationUserRepository +
o.a.i.extensions.secman.jpa.seed.SeedSecurityModuleService +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/jpa/IsisModuleExtSecmanPersistenceJpa.adoc[IsisModuleExtSecmanPersistenceJpa], xref:refguide:extensions:index/secman/jpa/seed/SeedSecurityModuleService.adoc[SeedSecurityModuleService], xref:refguide:extensions:index/secman/jpa/seed/SeedUsersAndRolesFixtureScript.adoc[SeedUsersAndRolesFixtureScript], xref:refguide:extensions:index/secman/jpa/seed/scripts/GlobalTenancy.adoc[GlobalTenancy], xref:refguide:extensions:index/secman/jpa/seed/scripts/IsisExtFixturesFixtureResultsRoleAndPermissions.adoc[IsisExtFixturesFixtureResultsRoleAndPermissions], xref:refguide:extensions:index/secman/jpa/seed/scripts/IsisExtSecmanAdminRoleAndPermissions.adoc[IsisExtSecmanAdminRoleAndPermissions], xref:refguide:extensions:index/secman/jpa/seed/scripts/IsisExtSecmanAdminUser.adoc[IsisExtSecmanAdminUser], xref:refguide:extensions:index/secman/jpa/seed/scripts/IsisExtSecmanFixtureRoleAndPermissions.adoc[IsisExtSecmanFixtureRoleAndPermissions], xref:refguide:extensions:index/secman/jpa/seed/scripts/IsisExtSecmanRegularUserRoleAndPermissions.adoc[IsisExtSecmanRegularUserRoleAndPermissions], xref:refguide:extensions:index/secman/jpa/userreg/SecurityModuleAppUserRegistrationServiceAbstract.adoc[SecurityModuleAppUserRegistrationServiceAbstract]
****

|Apache Isis Ext - Sec Man Realm (Using Shiro)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-secman-shiro-realm
Type: jar
Directory: /extensions/security/secman/shiro-realm
----
|.Components
****
o.a.i.extensions.secman.shiro.services.SecurityRealmServiceUsingShiro +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-api:jar:2.0.0-SNAPSHOT +
org.apache.isis.security:isis-security-shiro:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/shiro/IsisModuleExtSecmanRealmShiro.adoc[IsisModuleExtSecmanRealmShiro], xref:refguide:extensions:index/secman/shiro/IsisModuleExtSecmanShiroRealm.adoc[IsisModuleExtSecmanShiroRealm], xref:refguide:extensions:index/secman/shiro/services/SecurityRealmServiceUsingShiro.adoc[SecurityRealmServiceUsingShiro], xref:refguide:extensions:index/secman/shiro/util/ShiroUtils.adoc[ShiroUtils]
****

|Apache Isis Ext - Security - Shiro LDAP Realm (parent)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-shiro-realm-ldap
Type: pom
Directory: /extensions/security/shiro-realm-ldap
----
|Implementation of Shiro Realm using LDAP.

|Apache Isis Ext - Security - Shiro LDAP Realm (impl)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-shiro-realm-ldap-impl
Type: jar
Directory: /extensions/security/shiro-realm-ldap/impl
----
|.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.security:isis-security-shiro:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/shirorealmldap/realm/impl/IsisLdapContextFactory.adoc[IsisLdapContextFactory], xref:refguide:extensions:index/shirorealmldap/realm/impl/IsisLdapRealm.adoc[IsisLdapRealm], xref:refguide:extensions:index/shirorealmldap/realm/impl/IsisModuleExtShiroRealmLdapImpl.adoc[IsisModuleExtShiroRealmLdapImpl]
****
|===

=== Core: Command Log

[plantuml,Core: Command Log,svg]
----
@startuml(id=Core:_Command_Log)
title Core: Command Log - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Core: Command Log\n[Software System]" {
  rectangle "==Apache Isis Ext - Command Log\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Ext - Command Log Implementation (JDO)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
}
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (Core: Command Log)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Ext - Command Log
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-command-log
Type: pom
Directory: /extensions/core/command-log
----
|Logs commands

|Apache Isis Ext - Command Log Implementation (JDO)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-command-log-jdo
Type: jar
Directory: /extensions/core/command-log/impl
----
|.Components
****
o.a.i.extensions.commandlog.impl.CommandSubscriberForJdo +
o.a.i.extensions.commandlog.impl.jdo.CommandJdo$TableColumnOrderDefault +
o.a.i.extensions.commandlog.impl.jdo.CommandJdo$TitleProvider +
o.a.i.extensions.commandlog.impl.jdo.CommandJdoRepository +
o.a.i.extensions.commandlog.impl.ui.CommandServiceMenu +
****

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-config:jar:<managed> +
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/commandlog/impl/CommandSubscriberForJdo.adoc[CommandSubscriberForJdo], xref:refguide:extensions:index/commandlog/impl/IsisModuleExtCommandLogImpl.adoc[IsisModuleExtCommandLogImpl], xref:refguide:extensions:index/commandlog/impl/mixins/HasInteractionId_command.adoc[HasInteractionId_command], xref:refguide:extensions:index/commandlog/impl/mixins/HasUsername_recentCommandsByUser.adoc[HasUsername_recentCommandsByUser], xref:refguide:extensions:index/commandlog/impl/ui/CommandServiceMenu.adoc[CommandServiceMenu]
****
|===

=== Core: Command Replay

[plantuml,Core: Command Replay,svg]
----
@startuml(id=Core:_Command_Replay)
title Core: Command Replay - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Core: Command Replay\n[Software System]" {
  rectangle "==Apache Isis Ext - Command Replay\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Ext - Command Replay for Primary\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Ext - Command Replay for Secondary\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
@enduml
----
.Projects/Modules (Core: Command Replay)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Ext - Command Replay
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-command-replay
Type: pom
Directory: /extensions/core/command-replay
----
|Replays commands to secondary system

|Apache Isis Ext - Command Replay for Primary
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-command-replay-primary
Type: jar
Directory: /extensions/core/command-replay/primary
----
|A module for obtaining commands from a primary

.Components
****
o.a.i.extensions.commandreplay.primary.config.PrimaryConfig +
o.a.i.extensions.commandreplay.primary.spiimpl.CaptureResultOfCommand +
****

.Dependencies
****
org.apache.isis.core:isis-core-config:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.core:isis-schema:jar:<managed> +
org.apache.isis.extensions:isis-extensions-command-log-jdo:jar:<managed> +
org.apache.isis.mappings:isis-mappings-jaxrsclient-applib:jar:<managed> +
org.apache.isis.mappings:isis-mappings-jaxrsclient-impl:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/commandreplay/primary/IsisModuleExtCommandReplayPrimary.adoc[IsisModuleExtCommandReplayPrimary], xref:refguide:extensions:index/commandreplay/primary/config/PrimaryConfig.adoc[PrimaryConfig], xref:refguide:extensions:index/commandreplay/primary/mixins/Object_openOnSecondary.adoc[Object_openOnSecondary], xref:refguide:extensions:index/commandreplay/primary/restapi/CommandRetrievalService.adoc[CommandRetrievalService], xref:refguide:extensions:index/commandreplay/primary/ui/CommandReplayOnPrimaryService.adoc[CommandReplayOnPrimaryService]
****

|Apache Isis Ext - Command Replay for Secondary
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-command-replay-secondary
Type: jar
Directory: /extensions/core/command-replay/secondary
----
|A module providing a Quartz Job to run on a secondary system,
for obtaining commands from a primary and saving them so that they are replayed.

.Components
****
o.a.i.extensions.commandreplay.secondary.analyser.CommandReplayAnalyserException +
o.a.i.extensions.commandreplay.secondary.analyser.CommandReplayAnalyserResult +
o.a.i.extensions.commandreplay.secondary.analysis.CommandReplayAnalysisService +
o.a.i.extensions.commandreplay.secondary.clock.TickingClockService +
o.a.i.extensions.commandreplay.secondary.config.SecondaryConfig +
o.a.i.extensions.commandreplay.secondary.executor.CommandExecutorServiceWithTime +
o.a.i.extensions.commandreplay.secondary.fetch.CommandFetcher +
****

.Dependencies
****
org.apache.isis.core:isis-core-config:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.core:isis-schema:jar:<managed> +
org.apache.isis.extensions:isis-extensions-quartz-impl:jar:<managed> +
org.apache.isis.mappings:isis-mappings-jaxrsclient-applib:jar:<managed> +
org.apache.isis.mappings:isis-mappings-jaxrsclient-impl:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/commandreplay/secondary/IsisModuleExtCommandReplaySecondary.adoc[IsisModuleExtCommandReplaySecondary], xref:refguide:extensions:index/commandreplay/secondary/SecondaryStatus.adoc[SecondaryStatus], xref:refguide:extensions:index/commandreplay/secondary/analyser/CommandReplayAnalyser.adoc[CommandReplayAnalyser], xref:refguide:extensions:index/commandreplay/secondary/analyser/CommandReplayAnalyserException.adoc[CommandReplayAnalyserException], xref:refguide:extensions:index/commandreplay/secondary/analyser/CommandReplayAnalyserResult.adoc[CommandReplayAnalyserResult], xref:refguide:extensions:index/commandreplay/secondary/analysis/CommandReplayAnalysisService.adoc[CommandReplayAnalysisService], xref:refguide:extensions:index/commandreplay/secondary/clock/TickingClockService.adoc[TickingClockService], xref:refguide:extensions:index/commandreplay/secondary/config/SecondaryConfig.adoc[SecondaryConfig], xref:refguide:extensions:index/commandreplay/secondary/executor/CommandExecutorServiceWithTime.adoc[CommandExecutorServiceWithTime], xref:refguide:extensions:index/commandreplay/secondary/fetch/CommandFetcher.adoc[CommandFetcher], xref:refguide:extensions:index/commandreplay/secondary/job/ReplicateAndReplayJob.adoc[ReplicateAndReplayJob], xref:refguide:extensions:index/commandreplay/secondary/job/SecondaryStatusData.adoc[SecondaryStatusData], xref:refguide:extensions:index/commandreplay/secondary/jobcallables/ReplicateAndRunCommands.adoc[ReplicateAndRunCommands], xref:refguide:extensions:index/commandreplay/secondary/mixins/CommandJdo_exclude.adoc[CommandJdo_exclude], xref:refguide:extensions:index/commandreplay/secondary/mixins/CommandJdo_replayQueue.adoc[CommandJdo_replayQueue], xref:refguide:extensions:index/commandreplay/secondary/mixins/Object_openOnPrimary.adoc[Object_openOnPrimary], xref:refguide:extensions:index/commandreplay/secondary/spi/ReplayCommandExecutionController.adoc[ReplayCommandExecutionController], xref:refguide:extensions:index/commandreplay/secondary/ui/CommandReplayOnSecondaryService.adoc[CommandReplayOnSecondaryService]
****
|===

=== Core: Model Annotation

[plantuml,Core: Model Annotation,svg]
----
@startuml(id=Core:_Model_Annotation)
title Core: Model Annotation - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Core: Model Annotation\n[Software System]" {
  rectangle "==Apache Isis Ext - @Model\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Core: Model Annotation)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Ext - @Model
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-modelannotation
Type: jar
Directory: /extensions/core/model-annotation
----
|Allows supporting methods to be annotated as @Model, to make explicit the bounds of the metamodel.

.Components
****
o.a.i.extensions.modelannotation.metamodel.services.IncubatorMetaModelPlugin +
****

.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/modelannotation/applib/IsisModuleIncModelApplib.adoc[IsisModuleIncModelApplib], xref:refguide:extensions:index/modelannotation/applib/annotation/Model.adoc[Model], xref:refguide:extensions:index/modelannotation/metamodel/IsisModuleExtModelAnnotation.adoc[IsisModuleExtModelAnnotation], xref:refguide:extensions:index/modelannotation/metamodel/facets/SupportingMethodValidatorRefinerFactory.adoc[SupportingMethodValidatorRefinerFactory], xref:refguide:extensions:index/modelannotation/metamodel/services/IncubatorMetaModelPlugin.adoc[IncubatorMetaModelPlugin]
****
|===

=== Core: Quartz

[plantuml,Core: Quartz,svg]
----
@startuml(id=Core:_Quartz)
title Core: Quartz - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Core: Quartz\n[Software System]" {
  rectangle "==Apache Isis Ext - Quartz\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Ext - Quartz Impl\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
}
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (Core: Quartz)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Ext - Quartz
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-quartz
Type: pom
Directory: /extensions/core/quartz
----
|Integrates Quartz

|Apache Isis Ext - Quartz Impl
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-quartz-impl
Type: jar
Directory: /extensions/core/quartz/impl
----
|.Dependencies
****
org.apache.isis.core:isis-core-config:jar:<managed> +
org.apache.isis.core:isis-core-security:jar:<managed> +
org.apache.isis.extensions:isis-extensions-command-log-jdo:jar:<managed> +
org.springframework.boot:spring-boot-starter-quartz:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/quartz/IsisModuleExtQuartzImpl.adoc[IsisModuleExtQuartzImpl], xref:refguide:extensions:index/quartz/context/JobExecutionData.adoc[JobExecutionData], xref:refguide:extensions:index/quartz/spring/AutowiringSpringBeanJobFactory.adoc[AutowiringSpringBeanJobFactory]
****
|===

=== Security: Secman

=== Security: Shiro LDAP Realm

=== RO Viewer: CORS

=== Wicket Viewer: Excel Download

=== Wicket Viewer: Full Calendar

=== Wicket Viewer: Pdf.js

== Subdomains

[plantuml,Subdomains,svg]
----
@startuml(id=Subdomains)
title Subdomains - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<11>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<12>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<9>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<10>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Subdomains\n[Software System]" {
  rectangle "==Apache Isis Sub - Docx (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Sub - Docx (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
  rectangle "==Apache Isis Sub - Freemarker (applib)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Sub - Freemarker (parent)\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
  rectangle "==Apache Isis Sub - Ognl (applib)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
  rectangle "==Apache Isis Sub - Ognl (parent)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
  rectangle "==Apache Isis Sub - PDF Box (applib)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
  rectangle "==Apache Isis Sub - PDF Box (parent)\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
  rectangle "==Apache Isis Sub - Zip (applib)\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
  rectangle "==Apache Isis Sub - Zip (parent)\n<size:10>[Container: packaging: pom]</size>" <<11>> as 11
  rectangle "==Apache Isis Subdomains\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
3 .[#707070].> 4 : ""
5 .[#707070].> 6 : ""
7 .[#707070].> 8 : ""
9 .[#707070].> 10 : ""
11 .[#707070].> 12 : ""
2 .[#707070].> 3 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 7 : ""
2 .[#707070].> 9 : ""
2 .[#707070].> 11 : ""
@enduml
----
.Projects/Modules (Subdomains)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Subdomains
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains
Type: pom
Directory: /subdomains
----
|A library of domain services and of supporting subdomains (often technical in nature), to be called from the
core domain of an Apache Isis applications.

.Dependencies
****
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Sub - Docx (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-docx
Type: pom
Directory: /subdomains/docx
----
|Uses the Apache POI library for mail merge functions of .docx Word documents

|Apache Isis Sub - Docx (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-docx-applib
Type: jar
Directory: /subdomains/docx/applib
----
|.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
****

|Apache Isis Sub - Freemarker (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-freemarker
Type: pom
Directory: /subdomains/freemarker
----
|Integrates Freemarker Library

|Apache Isis Sub - Freemarker (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-freemarker-applib
Type: jar
Directory: /subdomains/freemarker/applib
----
|.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
****

|Apache Isis Sub - Ognl (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-ognl
Type: pom
Directory: /subdomains/ognl
----
|Integrates Ognl Library

|Apache Isis Sub - Ognl (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-ognl-applib
Type: jar
Directory: /subdomains/ognl/applib
----
|.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
****

|Apache Isis Sub - PDF Box (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-pdfbox
Type: pom
Directory: /subdomains/pdfbox
----
|Integrates PDF Box Library

|Apache Isis Sub - PDF Box (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-pdfbox-applib
Type: jar
Directory: /subdomains/pdfbox/applib
----
|Integrates PDF Box Library

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
****

|Apache Isis Sub - Zip (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-zip
Type: pom
Directory: /subdomains/zip
----
|A domain service for Apache Isis', for zipping utilities.

|Apache Isis Sub - Zip (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-zip-applib
Type: jar
Directory: /subdomains/zip/applib
----
|.Components
****
o.a.i.extensions.zip.dom.impl.ZipService +
****

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****
|===

=== Base

[plantuml,Base,svg]
----
@startuml(id=Base)
title Base - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Base\n[Software System]" {
  rectangle "==Apache Isis Sub - Base (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Sub - Base (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (Base)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Sub - Base (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-base
Type: pom
Directory: /subdomains/base
----
|A module providing Base utilities for other subdomain modules

|Apache Isis Sub - Base (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-base-applib
Type: jar
Directory: /subdomains/base/applib
----
|.Components
****
o.a.i.subdomains.base.applib.services.calendar.CalendarService +
****

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:subdomains:index/base/applib/Chained.adoc[Chained], xref:refguide:subdomains:index/base/applib/Dflt.adoc[Dflt], xref:refguide:subdomains:index/base/applib/IsisModuleSubdomainsBaseApplib.adoc[IsisModuleSubdomainsBaseApplib], xref:refguide:subdomains:index/base/applib/PowerType.adoc[PowerType], xref:refguide:subdomains:index/base/applib/Titled.adoc[Titled], xref:refguide:subdomains:index/base/applib/TitledEnum.adoc[TitledEnum], xref:refguide:subdomains:index/base/applib/services/BaseServicesModule.adoc[BaseServicesModule], xref:refguide:subdomains:index/base/applib/services/calendar/CalendarService.adoc[CalendarService], xref:refguide:subdomains:index/base/applib/types/DescriptionType.adoc[DescriptionType], xref:refguide:subdomains:index/base/applib/types/FqcnType.adoc[FqcnType], xref:refguide:subdomains:index/base/applib/types/MoneyType.adoc[MoneyType], xref:refguide:subdomains:index/base/applib/types/NameType.adoc[NameType], xref:refguide:subdomains:index/base/applib/types/NotesType.adoc[NotesType], xref:refguide:subdomains:index/base/applib/types/ObjectIdentifierType.adoc[ObjectIdentifierType], xref:refguide:subdomains:index/base/applib/types/PercentageType.adoc[PercentageType], xref:refguide:subdomains:index/base/applib/types/ProperNameType.adoc[ProperNameType], xref:refguide:subdomains:index/base/applib/types/ReferenceType.adoc[ReferenceType], xref:refguide:subdomains:index/base/applib/types/TitleType.adoc[TitleType], xref:refguide:subdomains:index/base/applib/types/UrlTemplateType.adoc[UrlTemplateType], xref:refguide:subdomains:index/base/applib/types/UserNameType.adoc[UserNameType], xref:refguide:subdomains:index/base/applib/types/XxxType.adoc[XxxType], xref:refguide:subdomains:index/base/applib/utils/ClassUtils.adoc[ClassUtils], xref:refguide:subdomains:index/base/applib/utils/JodaPeriodUtils.adoc[JodaPeriodUtils], xref:refguide:subdomains:index/base/applib/utils/MathUtils.adoc[MathUtils], xref:refguide:subdomains:index/base/applib/utils/MessageUtils.adoc[MessageUtils], xref:refguide:subdomains:index/base/applib/utils/StringUtils.adoc[StringUtils], xref:refguide:subdomains:index/base/applib/utils/TitleBuilder.adoc[TitleBuilder], xref:refguide:subdomains:index/base/applib/valuetypes/AbstractInterval.adoc[AbstractInterval], xref:refguide:subdomains:index/base/applib/valuetypes/LocalDateInterval.adoc[LocalDateInterval], xref:refguide:subdomains:index/base/applib/valuetypes/VT.adoc[VT], xref:refguide:subdomains:index/base/applib/with/WithCodeComparable.adoc[WithCodeComparable], xref:refguide:subdomains:index/base/applib/with/WithCodeGetter.adoc[WithCodeGetter], xref:refguide:subdomains:index/base/applib/with/WithCodeUnique.adoc[WithCodeUnique], xref:refguide:subdomains:index/base/applib/with/WithDescriptionComparable.adoc[WithDescriptionComparable], xref:refguide:subdomains:index/base/applib/with/WithDescriptionGetter.adoc[WithDescriptionGetter], xref:refguide:subdomains:index/base/applib/with/WithDescriptionUnique.adoc[WithDescriptionUnique], xref:refguide:subdomains:index/base/applib/with/WithInterval.adoc[WithInterval], xref:refguide:subdomains:index/base/applib/with/WithIntervalContiguous.adoc[WithIntervalContiguous], xref:refguide:subdomains:index/base/applib/with/WithIntervalMutable.adoc[WithIntervalMutable], xref:refguide:subdomains:index/base/applib/with/WithNameComparable.adoc[WithNameComparable], xref:refguide:subdomains:index/base/applib/with/WithNameGetter.adoc[WithNameGetter], xref:refguide:subdomains:index/base/applib/with/WithNameUnique.adoc[WithNameUnique], xref:refguide:subdomains:index/base/applib/with/WithReferenceComparable.adoc[WithReferenceComparable], xref:refguide:subdomains:index/base/applib/with/WithReferenceGetter.adoc[WithReferenceGetter], xref:refguide:subdomains:index/base/applib/with/WithReferenceUnique.adoc[WithReferenceUnique], xref:refguide:subdomains:index/base/applib/with/WithSequence.adoc[WithSequence], xref:refguide:subdomains:index/base/applib/with/WithStartDate.adoc[WithStartDate], xref:refguide:subdomains:index/base/applib/with/WithTitleComparable.adoc[WithTitleComparable], xref:refguide:subdomains:index/base/applib/with/WithTitleGetter.adoc[WithTitleGetter], xref:refguide:subdomains:index/base/applib/with/WithTitleUnique.adoc[WithTitleUnique]
****
|===

=== Excel

[plantuml,Excel,svg]
----
@startuml(id=Excel)
title Excel - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Excel\n[Software System]" {
  rectangle "==Apache Isis Sub - Excel (Fixtures)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Sub - Excel (Integ Tests)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Sub - Excel (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Sub - Excel (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Sub - Excel (testing support)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
}
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 3 : ""
2 .[#707070].> 6 : ""
@enduml
----
.Projects/Modules (Excel)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Sub - Excel (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-excel
Type: pom
Directory: /subdomains/excel
----
|A domain service for Apache Isis', allowing collections
of (view model) objects to be exported/imported to/from an
Excel spreadsheet.  Also support for excel-based fixtures.

|Apache Isis Sub - Excel (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-excel-applib
Type: jar
Directory: /subdomains/excel/applib
----
|.Components
****
o.a.i.subdomains.excel.applib.dom.ExcelService +
****

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
org.apache.poi:poi-ooxml:jar:<managed> +
org.apache.poi:poi-ooxml-schemas:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:subdomains:index/excel/applib/IsisModuleSubdomainsExcelApplib.adoc[IsisModuleSubdomainsExcelApplib], xref:refguide:subdomains:index/excel/applib/dom/AggregationType.adoc[AggregationType], xref:refguide:subdomains:index/excel/applib/dom/ExcelMetaDataEnabled.adoc[ExcelMetaDataEnabled], xref:refguide:subdomains:index/excel/applib/dom/ExcelService.adoc[ExcelService], xref:refguide:subdomains:index/excel/applib/dom/HyperLink.adoc[HyperLink], xref:refguide:subdomains:index/excel/applib/dom/PivotColumn.adoc[PivotColumn], xref:refguide:subdomains:index/excel/applib/dom/PivotDecoration.adoc[PivotDecoration], xref:refguide:subdomains:index/excel/applib/dom/PivotRow.adoc[PivotRow], xref:refguide:subdomains:index/excel/applib/dom/PivotValue.adoc[PivotValue], xref:refguide:subdomains:index/excel/applib/dom/RowHandler.adoc[RowHandler], xref:refguide:subdomains:index/excel/applib/dom/WorksheetContent.adoc[WorksheetContent], xref:refguide:subdomains:index/excel/applib/dom/WorksheetSpec.adoc[WorksheetSpec], xref:refguide:subdomains:index/excel/applib/dom/util/AnnotationList.adoc[AnnotationList], xref:refguide:subdomains:index/excel/applib/dom/util/AnnotationTriplet.adoc[AnnotationTriplet], xref:refguide:subdomains:index/excel/applib/dom/util/ExcelFileBlobConverter.adoc[ExcelFileBlobConverter], xref:refguide:subdomains:index/excel/applib/dom/util/ExcelServiceImpl.adoc[ExcelServiceImpl], xref:refguide:subdomains:index/excel/applib/dom/util/Mode.adoc[Mode], xref:refguide:subdomains:index/excel/applib/dom/util/PivotUtils.adoc[PivotUtils], xref:refguide:subdomains:index/excel/applib/dom/util/SheetPivoter.adoc[SheetPivoter]
****

|Apache Isis Sub - Excel (Fixtures)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-excel-fixtures
Type: jar
Directory: /subdomains/excel/fixture
----
|.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed> +
org.apache.isis.subdomains:isis-subdomains-excel-applib:jar:<managed> +
org.apache.isis.subdomains:isis-subdomains-excel-testing:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Sub - Excel (Integ Tests)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-excel-integtests
Type: jar
Directory: /subdomains/excel/integtests
----
|.Dependencies
****
org.apache.isis.mavendeps:isis-mavendeps-integtests:pom:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed> +
org.apache.isis.subdomains:isis-subdomains-excel-fixtures:jar:<managed> +
org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed> +
org.hsqldb:hsqldb:jar:<managed> +
****

|Apache Isis Sub - Excel (testing support)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-excel-testing
Type: jar
Directory: /subdomains/excel/testing
----
|.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.subdomains:isis-subdomains-excel-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:subdomains:index/excel/testing/ExcelFixture.adoc[ExcelFixture], xref:refguide:subdomains:index/excel/testing/ExcelFixture2.adoc[ExcelFixture2], xref:refguide:subdomains:index/excel/testing/ExcelFixtureRowHandler.adoc[ExcelFixtureRowHandler], xref:refguide:subdomains:index/excel/testing/ExcelFixtureWorkbookHandler.adoc[ExcelFixtureWorkbookHandler], xref:refguide:subdomains:index/excel/testing/FixtureAwareRowHandler.adoc[FixtureAwareRowHandler], xref:refguide:subdomains:index/excel/testing/IsisModuleSubdomainsExcelTesting.adoc[IsisModuleSubdomainsExcelTesting]
****
|===

=== Spring

[plantuml,Spring,svg]
----
@startuml(id=Spring)
title Spring - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Spring\n[Software System]" {
  rectangle "==Apache Isis Sub - Spring (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Sub - Spring (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (Spring)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Sub - Spring (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-spring
Type: pom
Directory: /subdomains/spring
----
|Utility services for interacting with the Spring application context (that hosts the Apache Isis application itself)

|Apache Isis Sub - Spring (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-spring-applib
Type: jar
Directory: /subdomains/spring/applib
----
|.Components
****
o.a.i.subdomains.spring.applib.service.SpringBeansService +
****

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:subdomains:index/spring/applib/IsisModuleSubdomainsSpringApplib.adoc[IsisModuleSubdomainsSpringApplib], xref:refguide:subdomains:index/spring/applib/service/BeanDescriptor.adoc[BeanDescriptor], xref:refguide:subdomains:index/spring/applib/service/ContextBeans.adoc[ContextBeans], xref:refguide:subdomains:index/spring/applib/service/SpringBeansService.adoc[SpringBeansService]
****
|===

=== XDocReport

[plantuml,XDocReport,svg]
----
@startuml(id=XDocReport)
title XDocReport - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "XDocReport\n[Software System]" {
  rectangle "==Apache Isis Sub - XdocReport (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Sub - XdocReport (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (XDocReport)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Sub - XdocReport (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-xdocreport
Type: pom
Directory: /subdomains/xdocreport
----
|Integrates XDoc Report Library

|Apache Isis Sub - XdocReport (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-xdocreport-applib
Type: jar
Directory: /subdomains/xdocreport/applib
----
|.Components
****
o.a.i.subdomains.xdocreport.applib.service.XDocReportService +
****

.Dependencies
****
fr.opensagres.xdocreport:fr.opensagres.xdocreport.converter.docx.xwpf:jar:<managed> +
fr.opensagres.xdocreport:fr.opensagres.xdocreport.document.docx:jar:<managed> +
fr.opensagres.xdocreport:fr.opensagres.xdocreport.template.freemarker:jar:<managed> +
fr.opensagres.xdocreport:org.apache.poi.xwpf.converter.core:jar:<managed> +
fr.opensagres.xdocreport:org.apache.poi.xwpf.converter.pdf:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:subdomains:index/xdocreport/applib/IsisModuleSubdomainsXDocReportApplib.adoc[IsisModuleSubdomainsXDocReportApplib], xref:refguide:subdomains:index/xdocreport/applib/service/OutputType.adoc[OutputType], xref:refguide:subdomains:index/xdocreport/applib/service/XDocReportModel.adoc[XDocReportModel], xref:refguide:subdomains:index/xdocreport/applib/service/XDocReportService.adoc[XDocReportService]
****
|===

== Tooling

[plantuml,Tooling,svg]
----
@startuml(id=Tooling)
title Tooling - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Tooling\n[Software System]" {
  rectangle "==Apache Isis - Tooling\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis - Tooling - C4 Modeling\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis - Tooling - CLI (Command Line Interface)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis - Tooling - Java Model (Code Mining)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis - Tooling - Java to Asciidoc (Code Mining)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis - Tooling - Model for AsciiDoc\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
  rectangle "==Apache Isis - Tooling - Project Model (Code mining)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 7 : ""
2 .[#707070].> 8 : ""
@enduml
----
.Projects/Modules (Tooling)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis - Tooling
[source,yaml]
----
Group: org.apache.isis.tooling
Artifact: isis-tooling
Type: pom
Directory: /tooling
----
|Libraries and tools not depending on the _Apache Isis Core_ ecosystem,
eg. code mining, automated documentation.
(Targeted for JVM 11+)

.Dependencies
****
com.google.code.findbugs:annotations:jar:3.0.1u2 +
org.junit.jupiter:junit-jupiter-api:jar:<managed> +
org.junit.jupiter:junit-jupiter-engine:jar:<managed> +
org.junit.vintage:junit-vintage-engine:jar:<managed> +
org.mapstruct:mapstruct-processor:jar:1.4.2.Final +
org.projectlombok:lombok:jar:<managed> +
org.slf4j:slf4j-api:jar:<managed> +
org.springframework.boot:spring-boot-starter-log4j2:jar:<managed> +
****

|Apache Isis - Tooling - C4 Modeling
[source,yaml]
----
Group: org.apache.isis.tooling
Artifact: isis-tooling-c4modeling
Type: jar
Directory: /tooling/c4modeling
----
|Library for programmatic C4 Model generation.

See https://c4model.com/

.Dependencies
****
com.structurizr:structurizr-core:jar:<managed> +
com.structurizr:structurizr-plantuml:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
****

|Apache Isis - Tooling - CLI (Command Line Interface)
[source,yaml]
----
Group: org.apache.isis.tooling
Artifact: isis-tooling-cli
Type: jar
Directory: /tooling/cli
----
|Command Line Interface for the _Apache Isis Tooling_ ecosystem.

.Dependencies
****
info.picocli:picocli:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.tooling:isis-tooling-c4modeling:jar:<managed> +
org.apache.isis.tooling:isis-tooling-java2adoc:jar:<managed> +
org.apache.isis.tooling:isis-tooling-javamodel:jar:<managed> +
org.apache.isis.tooling:isis-tooling-model4adoc:jar:<managed> +
org.apache.isis.tooling:isis-tooling-projectmodel:jar:<managed> +
****

|Apache Isis - Tooling - Java to Asciidoc (Code Mining)
[source,yaml]
----
Group: org.apache.isis.tooling
Artifact: isis-tooling-java2adoc
Type: jar
Directory: /tooling/java2adoc
----
|Code mining library for Java source to Asciidoc conversion.

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.tooling:isis-tooling-javamodel:jar:<managed> +
org.apache.isis.tooling:isis-tooling-model4adoc:jar:<managed> +
org.jsoup:jsoup:jar:<managed> +
****

|Apache Isis - Tooling - Java Model (Code Mining)
[source,yaml]
----
Group: org.apache.isis.tooling
Artifact: isis-tooling-javamodel
Type: jar
Directory: /tooling/javamodel
----
|Code mining library for Java bytecode introspection.

.Dependencies
****
com.github.andi-huber:code-assert:jar:-SNAPSHOT +
com.github.javaparser:javaparser-core:jar:${javaparser.version} +
org.apache.isis.commons:isis-commons:jar:<managed> +
****

|Apache Isis - Tooling - Model for AsciiDoc
[source,yaml]
----
Group: org.apache.isis.tooling
Artifact: isis-tooling-model4adoc
Type: jar
Directory: /tooling/model4adoc
----
|Library for programmatic AsciiDoc generation.

The AsciiDoc name is trademarked by the Eclipse Foundation (https://www.eclipse.org/).
This project is *not* part of the specification effort for _AsciiDoc_ under the
AsciiDoc Working Group. See https://projects.eclipse.org/proposals/asciidoc-language
and https://accounts.eclipse.org/mailing-list/asciidoc-wg. However, we are happy to
help with transfer of source code, if any project (under the umbrella of the
AsciiDoc Working Group) is willing to take over.

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.asciidoctor:asciidoctorj:jar:<managed> +
****

|Apache Isis - Tooling - Project Model (Code mining)
[source,yaml]
----
Group: org.apache.isis.tooling
Artifact: isis-tooling-projectmodel
Type: jar
Directory: /tooling/projectmodel
----
|Code mining library for Gradle/Maven project module tree introspection.

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.maven:maven-model-builder:jar:<managed> +
org.gradle:gradle-tooling-api:jar:<managed> +
****
|===

== Regression Tests

[plantuml,Regression Tests,svg]
----
@startuml(id=Regression_Tests)
title Regression Tests - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Regression Tests\n[Software System]" {
  rectangle "==Apache Isis - Regression Tests\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis - Regression Tests (stable)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
}
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (Regression Tests)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis - Regression Tests
[source,yaml]
----
Group: org.apache.isis.regressiontests
Artifact: isis-regressiontests
Type: pom
Directory: /regressiontests
----
|Collection of JUnit tests covering core functionalities of the framework.
(Targeted for JVM 11+)

.Dependencies
****
org.apache.directory.server:apacheds-test-framework:jar:2.0.0.AM26 +
org.apache.isis.extensions:isis-extensions-modelannotation:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-encryption-jbcrypt:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-persistence-jdo:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-shiro-realm:jar:<managed> +
org.apache.isis.extensions:isis-extensions-shiro-realm-ldap-impl:jar:<managed> +
org.apache.isis.mappings:isis-mappings-restclient-applib:jar:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-integtests:pom:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jpa:pom:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:<managed> +
org.apache.isis.security:isis-security-shiro:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-specsupport-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed> +
org.apache.isis.tooling:isis-tooling-model4adoc:jar:${project.version} +
org.apache.isis.viewer:isis-viewer-common:jar:<managed> +
org.glassfish:javax.json:jar:1.1.4 +
org.glassfish.jersey.ext:jersey-spring5:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis - Regression Tests (stable)
[source,yaml]
----
Group: org.apache.isis.regressiontests
Artifact: isis-regressiontests-stable
Type: jar
Directory: /regressiontests/stable
----
|.Components
****
o.a.i.testdomain.applayer.ApplicationLayerTestFactory +
o.a.i.testdomain.applayer.ApplicationLayerTestFactory$PreCommitListener +
o.a.i.testdomain.applayer.publishing.CommandSubscriberForTesting +
o.a.i.testdomain.applayer.publishing.EntityChangesSubscriberForTesting +
o.a.i.testdomain.applayer.publishing.EntityPropertyChangeSubscriberForTesting +
o.a.i.testdomain.applayer.publishing.ExecutionSubscriberForTesting +
o.a.i.testdomain.conf.Configuration_headless$HeadlessCommandSupport +
o.a.i.testdomain.jdo.JdoInventoryDao +
o.a.i.testdomain.jpa.JpaInventoryDao +
o.a.i.testdomain.jpa.springdata.EmployeeRepository +
o.a.i.testdomain.util.interaction.InteractionBoundaryProbe +
o.a.i.testdomain.util.kv.KVStoreForTesting +
o.a.i.testdomain.util.rest.RestEndpointService +
****

.Dependencies
****
org.apache.isis.extensions:isis-extensions-cors-impl:jar:<managed> +
org.glassfish.jersey.ext:jersey-spring5:jar:<managed> +
****
|===

== Incubator

[plantuml,Incubator,svg]
----
@startuml(id=Incubator)
title Incubator - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Incubator\n[Software System]" {
  rectangle "==Apache Isis Incubator\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Incubator)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Incubator
[source,yaml]
----
Group: org.apache.isis.incubator
Artifact: isis-incubator
Type: pom
Directory: /incubator
----
|Collection of Apache Isis extensions, subdomains or BC mappings, currently incubating.

.Dependencies
****
org.projectlombok:lombok:jar:<managed> +
****
|===

=== Kroviz Client

[plantuml,Kroviz Client,svg]
----
@startuml(id=Kroviz_Client)
title Kroviz Client - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Kroviz Client\n[Software System]" {
  rectangle "==Apache Isis Inc - Client kroViz\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Kroviz Client)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Inc - Client kroViz
[source,yaml]
----
Group: org.apache.isis.incubator.clients
Artifact: isis-client-kroviz
Type: jar
Directory: /incubator/clients/kroviz
----
|Initial sketches
|===

=== JavaFX Viewer

[plantuml,JavaFX Viewer,svg]
----
@startuml(id=JavaFX_Viewer)
title JavaFX Viewer - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "JavaFX Viewer\n[Software System]" {
  rectangle "==Apache Isis Inc - Viewer JavaFX\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Inc - Viewer JavaFX (Model)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Inc - Viewer JavaFX (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Inc - Viewer JavaFX (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
@enduml
----
.Projects/Modules (JavaFX Viewer)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Inc - Viewer JavaFX
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-javafx
Type: pom
Directory: /incubator/viewers/javafx
----
|Initial sketches

|Apache Isis Inc - Viewer JavaFX (Model)
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-javafx-model
Type: jar
Directory: /incubator/viewers/javafx/model
----
|.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.viewer:isis-viewer-common:jar:<managed> +
org.openjfx:javafx-base:jar:<managed> +
org.openjfx:javafx-controls:jar:<managed> +
org.openjfx:javafx-fxml:jar:<managed> +
org.openjfx:javafx-swing:jar:<managed> +
org.openjfx:javafx-web:jar:<managed> +
****

|Apache Isis Inc - Viewer JavaFX (UI Components)
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-javafx-ui
Type: jar
Directory: /incubator/viewers/javafx/ui
----
|.Components
****
o.a.i.incubator.viewer.javafx.ui.components.UiComponentFactoryFx +
o.a.i.incubator.viewer.javafx.ui.components.markup.MarkupFieldFactory +
o.a.i.incubator.viewer.javafx.ui.components.number.NumberFieldFactory +
o.a.i.incubator.viewer.javafx.ui.components.objectref.ObjectReferenceFieldFactory +
o.a.i.incubator.viewer.javafx.ui.components.other.FallbackFieldFactory +
o.a.i.incubator.viewer.javafx.ui.components.temporal.TemporalFieldFactory +
o.a.i.incubator.viewer.javafx.ui.components.text.TextFieldFactory +
o.a.i.incubator.viewer.javafx.ui.decorator.disabling.DisablingDecoratorForButton +
o.a.i.incubator.viewer.javafx.ui.decorator.disabling.DisablingDecoratorForFormField +
o.a.i.incubator.viewer.javafx.ui.decorator.icon.IconDecoratorForLabeled +
o.a.i.incubator.viewer.javafx.ui.decorator.icon.IconDecoratorForMenuItem +
o.a.i.incubator.viewer.javafx.ui.decorator.icon.IconServiceDefault +
o.a.i.incubator.viewer.javafx.ui.decorator.prototyping.PrototypingDecoratorForButton +
o.a.i.incubator.viewer.javafx.ui.decorator.prototyping.PrototypingDecoratorForFormField +
o.a.i.incubator.viewer.javafx.ui.decorator.prototyping.PrototypingInfoPopupProvider +
o.a.i.incubator.viewer.javafx.ui.main.MainViewFx +
o.a.i.incubator.viewer.javafx.ui.main.UiActionHandlerFx +
o.a.i.incubator.viewer.javafx.ui.main.UiBuilderFx +
o.a.i.incubator.viewer.javafx.ui.main.UiContextFxDefault +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.incubator.viewer:isis-viewer-javafx-model:jar:<managed> +
****

|Apache Isis Inc - Viewer JavaFX (Viewer)
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-javafx-viewer
Type: jar
Directory: /incubator/viewers/javafx/viewer
----
|.Dependencies
****
org.apache.isis.incubator.viewer:isis-viewer-javafx-ui:jar:<managed> +
****
|===

=== Vaadin Viewer

[plantuml,Vaadin Viewer,svg]
----
@startuml(id=Vaadin_Viewer)
title Vaadin Viewer - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Vaadin Viewer\n[Software System]" {
  rectangle "==Apache Isis Inc - Viewer Vaadin\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Inc - Viewer Vaadin (Model)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Inc - Viewer Vaadin (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Inc - Viewer Vaadin (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
@enduml
----
.Projects/Modules (Vaadin Viewer)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Inc - Viewer Vaadin
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-vaadin
Type: pom
Directory: /incubator/viewers/vaadin
----
|Initial sketches

|Apache Isis Inc - Viewer Vaadin (Model)
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-vaadin-model
Type: jar
Directory: /incubator/viewers/vaadin/model
----
|.Dependencies
****
com.github.fge:jackson-coreutils:jar:1.8 +
com.vaadin:vaadin:jar:<managed> +
io.swagger:swagger-compat-spec-parser:jar:1.0.39 +
io.swagger:swagger-parser:jar:1.0.39 +
io.swagger.core.v3:swagger-core:jar:2.0.5 +
io.swagger.core.v3:swagger-models:jar:2.0.5 +
io.swagger.parser.v3:swagger-parser-core:jar:2.0.5 +
io.swagger.parser.v3:swagger-parser-v3:jar:2.0.5 +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.apache.isis.viewer:isis-viewer-common:jar:<managed> +
****

|Apache Isis Inc - Viewer Vaadin (UI Components)
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-vaadin-ui
Type: jar
Directory: /incubator/viewers/vaadin/ui
----
|.Components
****
o.a.i.incubator.viewer.vaadin.ui.auth.LogoutHandlerVaa +
o.a.i.incubator.viewer.vaadin.ui.auth.VaadinAuthenticationHandler +
o.a.i.incubator.viewer.vaadin.ui.components.UiComponentFactoryVaa +
o.a.i.incubator.viewer.vaadin.ui.components.blob.BlobFieldFactory +
o.a.i.incubator.viewer.vaadin.ui.components.clob.ClobFieldFactory +
o.a.i.incubator.viewer.vaadin.ui.components.markup.MarkupFieldFactory +
o.a.i.incubator.viewer.vaadin.ui.components.other.FallbackFieldFactory +
o.a.i.incubator.viewer.vaadin.ui.components.temporal.TemporalFieldFactory +
o.a.i.incubator.viewer.vaadin.ui.components.text.TextFieldFactory +
o.a.i.incubator.viewer.vaadin.ui.components.text.uuid.UuidFieldFactory +
o.a.i.incubator.viewer.vaadin.ui.pages.main.UiActionHandlerVaa +
o.a.i.incubator.viewer.vaadin.ui.pages.main.UiContextVaaDefault +
****

.Dependencies
****
com.vaadin:vaadin-spring:jar:<managed> +
commons-fileupload:commons-fileupload:jar:1.4 +
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.incubator.viewer:isis-viewer-vaadin-model:jar:<managed> +
****

|Apache Isis Inc - Viewer Vaadin (Viewer)
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-vaadin-viewer
Type: jar
Directory: /incubator/viewers/vaadin/viewer
----
|.Dependencies
****
org.apache.isis.incubator.viewer:isis-viewer-vaadin-ui:jar:<managed> +
****
|===

== Legacy

[plantuml,Legacy,svg]
----
@startuml(id=Legacy)
title Legacy - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Legacy\n[Software System]" {
  rectangle "==Apache Isis Legacy\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Legacy - Applib\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Legacy - Commons\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Legacy - Metamodel\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Legacy - REST Client\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Legacy - Runtime\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 7 : ""
@enduml
----
.Projects/Modules (Legacy)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Legacy
[source,yaml]
----
Group: org.apache.isis.legacy
Artifact: isis-legacy
Type: pom
Directory: /legacy
----
|Collection of deprecated Apache Isis functionality, for removal.

.Dependencies
****
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Legacy - Applib
[source,yaml]
----
Group: org.apache.isis.legacy
Artifact: isis-legacy-applib
Type: jar
Directory: /legacy/extensions/core/applib
----
|To ease migration from Apache Isis versions 1.16+ to 2.0.0.

.Components
****
o.a.i.legacy.applib.DomainObjectContainer +
****

.Dependencies
****
com.google.guava:guava:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
****

|Apache Isis Legacy - Commons
[source,yaml]
----
Group: org.apache.isis.legacy
Artifact: isis-legacy-commons
Type: jar
Directory: /legacy/extensions/core/commons
----
|To ease migration from Apache Isis versions 1.16+ to 2.0.0.

.Dependencies
****
com.google.guava:guava:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
****

|Apache Isis Legacy - Metamodel
[source,yaml]
----
Group: org.apache.isis.legacy
Artifact: isis-legacy-metamodel
Type: jar
Directory: /legacy/extensions/core/metamodel
----
|To ease migration from Apache Isis versions 1.16+ to 2.0.0.

.Dependencies
****
com.google.guava:guava:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.legacy:isis-legacy-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
****

|Apache Isis Legacy - REST Client
[source,yaml]
----
Group: org.apache.isis.legacy
Artifact: isis-legacy-restclient
Type: jar
Directory: /legacy/mappings/restclient
----
|As defined in Isis v1.x RO Applib.

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Legacy - Runtime
[source,yaml]
----
Group: org.apache.isis.legacy
Artifact: isis-legacy-runtime
Type: jar
Directory: /legacy/extensions/core/runtime
----
|To ease migration from Apache Isis versions 1.16+ to 2.0.0.

.Dependencies
****
com.google.guava:guava:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.legacy:isis-legacy-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-datanucleus:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
****
|===

= System Overview
: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 agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

These tables summarize all Maven artifacts available with _Apache Isis_.

== App

[plantuml,App,svg]
----
@startuml(id=App)
title App - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "App\n[Software System]" {
  rectangle "==Apache Isis Starter Parent\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (App)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Starter Parent
[source,yaml]
----
Group: org.apache.isis.app
Artifact: isis-app-starter-parent
Type: pom
Directory: /starters
----
|Parent pom providing dependency and plugin management for Apache Isis applications
built with Maven.  Builds on top of spring-boot-starter-parent.
|===

== Mavendeps

[plantuml,Mavendeps,svg]
----
@startuml(id=Mavendeps)
title Mavendeps - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<9>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Mavendeps\n[Software System]" {
  rectangle "==Apache Isis Maven Deps\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Maven Deps - BDD Integ Spec\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
  rectangle "==Apache Isis Maven Deps - Integration Testing\n<size:10>[Container: packaging: pom]</size>" <<4>> as 4
  rectangle "==Apache Isis Maven Deps - JDK11\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
  rectangle "==Apache Isis Maven Deps - JDO\n<size:10>[Container: packaging: pom]</size>" <<6>> as 6
  rectangle "==Apache Isis Maven Deps - JPA\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
  rectangle "==Apache Isis Maven Deps - Testing\n<size:10>[Container: packaging: pom]</size>" <<8>> as 8
  rectangle "==Apache Isis Maven Deps - Webapp\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 7 : ""
2 .[#707070].> 8 : ""
2 .[#707070].> 9 : ""
@enduml
----
.Projects/Modules (Mavendeps)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Maven Deps
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps
Type: pom
Directory: /mavendeps
----
|Collection of Apache Isis Maven Dependency Bundles.

|Apache Isis Maven Deps - BDD Integ Spec
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps-integspecs
Type: pom
Directory: /mavendeps/integspecs
----
|Defines a module that can be used as a single dependency for BDD (Cucumber) specs as integration tests.

.Dependencies
****
org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-specsupport-applib:jar:<managed> +
****

|Apache Isis Maven Deps - Integration Testing
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps-integtests
Type: pom
Directory: /mavendeps/integtests
----
|Defines a module that can be used as a single dependency for integration tests.

.Dependencies
****
org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed> +
****

|Apache Isis Maven Deps - JDK11
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps-jdk11
Type: pom
Directory: /mavendeps/jdk11
----
|Defines a module to bring in dependencies that were part of JDK 8 but
had been removed with JDK 11+. These dependencies are activated when the
consuming project is built with JDK 11 or higher.

|Apache Isis Maven Deps - JDO
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps-jdo
Type: pom
Directory: /mavendeps/jdo
----
|Defines a module that provides the default JDO persistence layer integration
for running an Apache Isis webapp (Wicket, Restful Objects and Shiro security).

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-schema:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-datanucleus:jar:<managed> +
****

|Apache Isis Maven Deps - JPA
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps-jpa
Type: pom
Directory: /mavendeps/jpa
----
|Defines a module that provides the default JPA persistence layer integration
for running an Apache Isis webapp (Wicket, Restful Objects and Shiro security).

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-schema:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jpa-eclipselink:jar:<managed> +
****

|Apache Isis Maven Deps - Testing
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps-unittests
Type: pom
Directory: /mavendeps/unittests
----
|Defines a module that can be used as a single dependency for a set of common testing libraries.

.Dependencies
****
org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed> +
****

|Apache Isis Maven Deps - Webapp
[source,yaml]
----
Group: org.apache.isis.mavendeps
Artifact: isis-mavendeps-webapp
Type: pom
Directory: /mavendeps/webapp
----
|Defines a module that can be almost used as a single dependency for running
an Apache Isis webapp (Wicket, Restful Objects and Shiro security).

Note: Also requires a persistence provider.

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.core:isis-core-security:jar:<managed> +
org.apache.isis.core:isis-schema:jar:<managed> +
org.apache.isis.security:isis-security-bypass:jar:<managed> +
org.apache.isis.security:isis-security-keycloak:jar:<managed> +
org.apache.isis.security:isis-security-shiro:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-jaxrsresteasy4:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-viewer:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-viewer:jar:<managed> +
org.springframework.boot:spring-boot-starter-tomcat:jar:<managed> +
org.springframework.boot:spring-boot-starter-web:jar:<managed> +
****
|===

== Testing

[plantuml,Testing,svg]
----
@startuml(id=Testing)
title Testing - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<11>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<12>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<13>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<14>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<15>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<16>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<17>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<18>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<9>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<10>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Testing\n[Software System]" {
  rectangle "==Apache Isis Testing\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Tst - FakeData (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Tst - FakeData (fixtures)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Tst - FakeData (integ tests)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Tst - FakeData (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
  rectangle "==Apache Isis Tst - Fixtures (applib)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
  rectangle "==Apache Isis Tst - Fixtures (parent)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
  rectangle "==Apache Isis Tst - H2 Console (parent)\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
  rectangle "==Apache Isis Tst - H2 Console (ui)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
  rectangle "==Apache Isis Tst - HSQLDB Manager\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
  rectangle "==Apache Isis Tst - HSQLDB Manager (parent)\n<size:10>[Container: packaging: pom]</size>" <<11>> as 11
  rectangle "==Apache Isis Tst - Integ Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<14>> as 14
  rectangle "==Apache Isis Tst - Integ Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<13>> as 13
  rectangle "==Apache Isis Tst - Spec/Cucumber (applib)\n<size:10>[Container: packaging: jar]</size>" <<16>> as 16
  rectangle "==Apache Isis Tst - Spec/Cucumber (parent)\n<size:10>[Container: packaging: pom]</size>" <<15>> as 15
  rectangle "==Apache Isis Tst - Unit Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<18>> as 18
  rectangle "==Apache Isis Tst - Unit Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<17>> as 17
}
2 .[#707070].> 3 : ""
2 .[#707070].> 7 : ""
2 .[#707070].> 9 : ""
2 .[#707070].> 11 : ""
2 .[#707070].> 13 : ""
2 .[#707070].> 15 : ""
2 .[#707070].> 17 : ""
3 .[#707070].> 4 : ""
3 .[#707070].> 5 : ""
3 .[#707070].> 6 : ""
7 .[#707070].> 8 : ""
9 .[#707070].> 10 : ""
11 .[#707070].> 12 : ""
13 .[#707070].> 14 : ""
15 .[#707070].> 16 : ""
17 .[#707070].> 18 : ""
@enduml
----
.Projects/Modules (Testing)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Testing
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing
Type: pom
Directory: /testing
----
|A library of utilities, mini-frameworks and tools for prototyping and testing Apache Isis applications.

|Apache Isis Tst - FakeData (parent)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-fakedata
Type: pom
Directory: /testing/fakedata
----
|A module providing a domain service to generate fake random data
for use in unit tests or integration tests.

|Apache Isis Tst - FakeData (applib)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-fakedata-applib
Type: jar
Directory: /testing/fakedata/applib
----
|.Components
****
o.a.i.testing.fakedata.applib.services.FakeDataService +
****

.Dependencies
****
com.github.javafaker:javafaker:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:testing:index/fakedata/applib/IsisModuleTestingFakeDataApplib.adoc[IsisModuleTestingFakeDataApplib], xref:refguide:testing:index/fakedata/applib/services/AbstractRandomValueGenerator.adoc[AbstractRandomValueGenerator], xref:refguide:testing:index/fakedata/applib/services/Addresses.adoc[Addresses], xref:refguide:testing:index/fakedata/applib/services/BigDecimals.adoc[BigDecimals], xref:refguide:testing:index/fakedata/applib/services/BigIntegers.adoc[BigIntegers], xref:refguide:testing:index/fakedata/applib/services/Books.adoc[Books], xref:refguide:testing:index/fakedata/applib/services/Booleans.adoc[Booleans], xref:refguide:testing:index/fakedata/applib/services/Bytes.adoc[Bytes], xref:refguide:testing:index/fakedata/applib/services/Chars.adoc[Chars], xref:refguide:testing:index/fakedata/applib/services/Collections.adoc[Collections], xref:refguide:testing:index/fakedata/applib/services/Comms.adoc[Comms], xref:refguide:testing:index/fakedata/applib/services/CreditCards.adoc[CreditCards], xref:refguide:testing:index/fakedata/applib/services/Doubles.adoc[Doubles], xref:refguide:testing:index/fakedata/applib/services/Enums.adoc[Enums], xref:refguide:testing:index/fakedata/applib/services/FakeDataService.adoc[FakeDataService], xref:refguide:testing:index/fakedata/applib/services/Floats.adoc[Floats], xref:refguide:testing:index/fakedata/applib/services/Integers.adoc[Integers], xref:refguide:testing:index/fakedata/applib/services/IsisBlobs.adoc[IsisBlobs], xref:refguide:testing:index/fakedata/applib/services/IsisClobs.adoc[IsisClobs], xref:refguide:testing:index/fakedata/applib/services/IsisPasswords.adoc[IsisPasswords], xref:refguide:testing:index/fakedata/applib/services/J8DateTimes.adoc[J8DateTimes], xref:refguide:testing:index/fakedata/applib/services/J8LocalDates.adoc[J8LocalDates], xref:refguide:testing:index/fakedata/applib/services/J8Periods.adoc[J8Periods], xref:refguide:testing:index/fakedata/applib/services/JavaSqlDates.adoc[JavaSqlDates], xref:refguide:testing:index/fakedata/applib/services/JavaSqlTimestamps.adoc[JavaSqlTimestamps], xref:refguide:testing:index/fakedata/applib/services/JavaUtilDates.adoc[JavaUtilDates], xref:refguide:testing:index/fakedata/applib/services/JodaDateTimes.adoc[JodaDateTimes], xref:refguide:testing:index/fakedata/applib/services/JodaLocalDates.adoc[JodaLocalDates], xref:refguide:testing:index/fakedata/applib/services/JodaPeriods.adoc[JodaPeriods], xref:refguide:testing:index/fakedata/applib/services/Longs.adoc[Longs], xref:refguide:testing:index/fakedata/applib/services/Lorem.adoc[Lorem], xref:refguide:testing:index/fakedata/applib/services/Names.adoc[Names], xref:refguide:testing:index/fakedata/applib/services/Shorts.adoc[Shorts], xref:refguide:testing:index/fakedata/applib/services/Strings.adoc[Strings], xref:refguide:testing:index/fakedata/applib/services/Urls.adoc[Urls], xref:refguide:testing:index/fakedata/applib/services/Uuids.adoc[Uuids]
****

|Apache Isis Tst - FakeData (fixtures)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-fakedata-fixtures
Type: jar
Directory: /testing/fakedata/fixtures
----
|.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Tst - FakeData (integ tests)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-fakedata-integtests
Type: jar
Directory: /testing/fakedata/integtests
----
|.Dependencies
****
org.apache.isis.mavendeps:isis-mavendeps-integtests:pom:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-datanucleus:jar:<managed> +
org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-fakedata-fixtures:jar:<managed> +
****

|Apache Isis Tst - Fixtures (parent)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-fixtures
Type: pom
Directory: /testing/fixtures
----
|Library to initialize the system under test, either for integration testing or for prototyping.

|Apache Isis Tst - Fixtures (applib)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-fixtures-applib
Type: jar
Directory: /testing/fixtures/applib
----
|.Components
****
o.a.i.testing.fixtures.applib.fixturescripts.ExecutionParametersService +
o.a.i.testing.fixtures.applib.modules.ModuleWithFixturesService +
o.a.i.testing.fixtures.applib.queryresultscache.QueryResultsCacheControlDefault +
o.a.i.testing.fixtures.applib.services.FixturesLifecycleService +
****

.Dependencies
****
joda-time:joda-time:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed> +
org.apache.isis.subdomains:isis-subdomains-spring-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed> +
****

|Apache Isis Tst - H2 Console (parent)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-h2console
Type: pom
Directory: /testing/h2console
----
|Menu and configuration to open up H2 Console

|Apache Isis Tst - H2 Console (ui)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-h2console-ui
Type: jar
Directory: /testing/h2console/ui
----
|.Components
****
o.a.i.testing.h2console.ui.webmodule.WebModuleH2Console +
****

.Dependencies
****
com.h2database:h2:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:testing:index/h2console/ui/IsisModuleTestingH2ConsoleUi.adoc[IsisModuleTestingH2ConsoleUi], xref:refguide:testing:index/h2console/ui/services/H2ManagerMenu.adoc[H2ManagerMenu], xref:refguide:testing:index/h2console/ui/webmodule/WebModuleH2Console.adoc[WebModuleH2Console]
****

|Apache Isis Tst - HSQLDB Manager (parent)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-hsqldbmgr
Type: pom
Directory: /testing/hsqldbmgr
----
|Menu and configuration to open up HSQLDB Manager

|Apache Isis Tst - HSQLDB Manager
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-hsqldbmgr-ui
Type: jar
Directory: /testing/hsqldbmgr/ui
----
|.Dependencies
****
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.hsqldb:hsqldb:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/hsqldbmgr/dom/IsisModuleExtHsqldbMgr.adoc[IsisModuleExtHsqldbMgr], xref:refguide:extensions:index/hsqldbmgr/dom/services/HsqlDbManagerMenu.adoc[HsqlDbManagerMenu]
****

|Apache Isis Tst - Integ Test Support (parent)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-integtestsupport
Type: pom
Directory: /testing/integtestsupport
----
|Support for writing integ tests in JUnit 5; should be added as a dependency with scope=test only

|Apache Isis Tst - Integ Test Support (applib)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-integtestsupport-applib
Type: jar
Directory: /testing/integtestsupport/applib
----
|.Components
****
o.a.i.testing.integtestsupport.applib.IsisIntegrationTestAbstract$InteractionSupport +
****

.Dependencies
****
com.approvaltests:approvaltests:jar:<managed> +
com.h2database:h2:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.security:isis-security-bypass:jar:<managed> +
org.hamcrest:hamcrest-library:jar:<managed> +
org.hsqldb:hsqldb:jar:<managed> +
org.slf4j:slf4j-api:jar:${slf4j-api.version} +
org.springframework:spring-test:jar:<managed> +
org.springframework.boot:spring-boot-starter-test:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:testing:index/integtestsupport/applib/ExceptionRecognizerTranslate.adoc[ExceptionRecognizerTranslate], xref:refguide:testing:index/integtestsupport/applib/IsisIntegrationTestAbstract.adoc[IsisIntegrationTestAbstract], xref:refguide:testing:index/integtestsupport/applib/IsisInteractionHandler.adoc[IsisInteractionHandler], xref:refguide:testing:index/integtestsupport/applib/ThrowableMatchers.adoc[ThrowableMatchers], xref:refguide:testing:index/integtestsupport/applib/swagger/SwaggerExporter.adoc[SwaggerExporter], xref:refguide:testing:index/integtestsupport/applib/validate/DomainModelValidator.adoc[DomainModelValidator]
****

|Apache Isis Tst - Spec/Cucumber (parent)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-specsupport
Type: pom
Directory: /testing/specsupport
----
|Allows Cucumber to be used to write BDD-style specifications, generally as an alternative to integration tests.

|Apache Isis Tst - Spec/Cucumber (applib)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-specsupport-applib
Type: jar
Directory: /testing/specsupport/applib
----
|.Dependencies
****
io.cucumber:cucumber-java:jar:<managed> +
io.cucumber:cucumber-junit-platform-engine:jar:<managed> +
io.cucumber:cucumber-spring:jar:<managed> +
org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed> +
org.junit.jupiter:junit-jupiter-api:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:testing:index/specsupport/applib/IsisModuleTestingSpecSupportApplib.adoc[IsisModuleTestingSpecSupportApplib], xref:refguide:testing:index/specsupport/applib/integration/ObjectFactoryForIntegration.adoc[ObjectFactoryForIntegration], xref:refguide:testing:index/specsupport/applib/specs/V.adoc[V]
****

|Apache Isis Tst - Unit Test Support (parent)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-unittestsupport
Type: pom
Directory: /testing/unittestsupport
----
|A module providing test utilities for unit testing of domain modules

|Apache Isis Tst - Unit Test Support (applib)
[source,yaml]
----
Group: org.apache.isis.testing
Artifact: isis-testing-unittestsupport-applib
Type: jar
Directory: /testing/unittestsupport/applib
----
|.Dependencies
****
com.approvaltests:approvaltests:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-codegen-bytebuddy:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
org.jmock:jmock:jar:<managed> +
org.jmock:jmock-junit4:jar:<managed> +
org.picocontainer:picocontainer:jar:<managed> +
org.slf4j:slf4j-api:jar:<managed> +
org.springframework:spring-test:jar:<managed> +
org.springframework.boot:spring-boot-starter-test:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:testing:index/unittestsupport/applib/IsisModuleTestingUnitTestSupportApplib.adoc[IsisModuleTestingUnitTestSupportApplib], xref:refguide:testing:index/unittestsupport/applib/bean/AbstractBeanPropertiesTest.adoc[AbstractBeanPropertiesTest], xref:refguide:testing:index/unittestsupport/applib/bean/FixtureDatumFactoriesForAnyPojo.adoc[FixtureDatumFactoriesForAnyPojo], xref:refguide:testing:index/unittestsupport/applib/bean/FixtureDatumFactoriesForApplib.adoc[FixtureDatumFactoriesForApplib], xref:refguide:testing:index/unittestsupport/applib/bean/FixtureDatumFactoriesForJoda.adoc[FixtureDatumFactoriesForJoda], xref:refguide:testing:index/unittestsupport/applib/bean/FixtureDatumFactoriesForTime.adoc[FixtureDatumFactoriesForTime], xref:refguide:testing:index/unittestsupport/applib/bean/PojoTester.adoc[PojoTester], xref:refguide:testing:index/unittestsupport/applib/core/AbstractApplyToAllContractTest.adoc[AbstractApplyToAllContractTest], xref:refguide:testing:index/unittestsupport/applib/core/bidir/BidirectionalRelationshipContractTestAbstract.adoc[BidirectionalRelationshipContractTestAbstract], xref:refguide:testing:index/unittestsupport/applib/core/bidir/Instantiator.adoc[Instantiator], xref:refguide:testing:index/unittestsupport/applib/core/bidir/InstantiatorSimple.adoc[InstantiatorSimple], xref:refguide:testing:index/unittestsupport/applib/core/bidir/Instantiators.adoc[Instantiators], xref:refguide:testing:index/unittestsupport/applib/core/comparable/ComparableContractTest_compareTo.adoc[ComparableContractTest_compareTo], xref:refguide:testing:index/unittestsupport/applib/core/comparable/ComparableContractTester.adoc[ComparableContractTester], xref:refguide:testing:index/unittestsupport/applib/core/files/Files.adoc[Files], xref:refguide:testing:index/unittestsupport/applib/core/jaxb/JaxbMatchers.adoc[JaxbMatchers], xref:refguide:testing:index/unittestsupport/applib/core/jmocking/Imposterisers.adoc[Imposterisers], xref:refguide:testing:index/unittestsupport/applib/core/jmocking/InjectIntoJMockAction.adoc[InjectIntoJMockAction], xref:refguide:testing:index/unittestsupport/applib/core/jmocking/IsisActions.adoc[IsisActions], xref:refguide:testing:index/unittestsupport/applib/core/jmocking/JMockActions.adoc[JMockActions], xref:refguide:testing:index/unittestsupport/applib/core/jmocking/JUnitRuleMockery2.adoc[JUnitRuleMockery2], xref:refguide:testing:index/unittestsupport/applib/core/jmocking/PostponedAction.adoc[PostponedAction], xref:refguide:testing:index/unittestsupport/applib/core/soap/SoapEndpointPublishingRule.adoc[SoapEndpointPublishingRule], xref:refguide:testing:index/unittestsupport/applib/core/soap/SoapEndpointSpec.adoc[SoapEndpointSpec], xref:refguide:testing:index/unittestsupport/applib/core/sortedsets/SortedSetsContractTestAbstract.adoc[SortedSetsContractTestAbstract], xref:refguide:testing:index/unittestsupport/applib/core/streams/NullPrintStream.adoc[NullPrintStream], xref:refguide:testing:index/unittestsupport/applib/core/utils/CollectUtils.adoc[CollectUtils], xref:refguide:testing:index/unittestsupport/applib/core/utils/IndentPrinter.adoc[IndentPrinter], xref:refguide:testing:index/unittestsupport/applib/core/utils/ReflectUtils.adoc[ReflectUtils], xref:refguide:testing:index/unittestsupport/applib/core/utils/StringUtils.adoc[StringUtils], xref:refguide:testing:index/unittestsupport/applib/core/value/ValueTypeContractTestAbstract.adoc[ValueTypeContractTestAbstract], xref:refguide:testing:index/unittestsupport/applib/dom/assertions/Asserting.adoc[Asserting], xref:refguide:testing:index/unittestsupport/applib/dom/matchers/IsisMatchers.adoc[IsisMatchers], xref:refguide:testing:index/unittestsupport/applib/dom/privatecons/PrivateConstructorTester.adoc[PrivateConstructorTester], xref:refguide:testing:index/unittestsupport/applib/dom/reflect/ReflectUtils.adoc[ReflectUtils], xref:refguide:testing:index/unittestsupport/applib/dom/repo/FinderInteraction.adoc[FinderInteraction]
****
|===

== Examples

[plantuml,Examples,svg]
----
@startuml(id=Examples)
title Examples - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Examples\n[Software System]" {
  rectangle "==Demo - Domain\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Demo - JavaFX\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Demo - Parent\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Demo - Vaadin\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Demo - Web\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Demo - Wicket\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 7 : ""
@enduml
----
.Projects/Modules (Examples)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Demo - Parent
[source,yaml]
----
Group: org.apache.isis.examples.apps
Artifact: demo-parent
Type: pom
Directory: /examples/demo
----
|.Dependencies
****
com.h2database:h2:jar:<managed> +
org.apache.isis.extensions:isis-extensions-exceldownload-ui:jar:<managed> +
org.apache.isis.extensions:isis-extensions-modelannotation:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-encryption-jbcrypt:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-persistence-jdo:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-shiro-realm:jar:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-persistence-jdo-dn5:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-persistence-jdo-dn5:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-sse-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

|Demo - Domain
[source,yaml]
----
Group: org.apache.isis.examples.apps
Artifact: demo-domain
Type: jar
Directory: /examples/demo/domain
----
|.Components
****
demoapp.dom.AppConfiguration +
demoapp.dom._infra.DefaultTitleProvider +
demoapp.dom._infra.LibraryPreloadingService +
demoapp.dom._infra.fixtures.DemoFixtureScriptSpecificationProvider +
demoapp.dom._infra.resources.AsciiDocConverterService +
demoapp.dom._infra.resources.AsciiDocReaderService +
demoapp.dom._infra.resources.MarkdownReaderService +
demoapp.dom._infra.resources.MarkupReaderService +
demoapp.dom._infra.resources.MarkupVariableResolverService +
demoapp.dom._infra.resources.ResourceReaderService +
demoapp.dom._infra.samples.NameSamples +
demoapp.dom._infra.urlencoding.UrlEncodingServiceNaiveInMemory +
demoapp.dom.domain._changes.EntityChangesSubscriberToCaptureChangesInMemory +
demoapp.dom.domain._commands.ExposePersistedCommands$TableColumnOrderDefault +
demoapp.dom.domain._interactions.ExecutionListenerToCaptureInteractionsInMemory +
demoapp.dom.domain.actions.Action.commandPublishing.ActionCommandPublishingJdoEntities +
demoapp.dom.domain.actions.Action.commandPublishing.ActionCommandPublishingJdoSeedService +
demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingJdoEntities +
demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingJdoSeedService +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.disabled.DomainObjectEntityChangePublishingDisabledJdoEntities +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.disabled.DomainObjectEntityChangePublishingDisabledJdoSeedService +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.enabled.DomainObjectAuditingEnabledJdoEntities +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.annotated.enabled.DomainObjectAuditingEnabledJdoSeedService +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnot.enabled.DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdoEntities +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnot.enabled.DomainObjectEntityChangePublishingEnabledMetaAnnotatedJdoSeedService +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnotOverridden.enabled.DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdoEntities +
demoapp.dom.domain.objects.DomainObject.entityChangePublishing.metaAnnotOverridden.enabled.DomainObjectEntityChangePublishingEnabledMetaAnnotOverriddenJdoSeedService +
demoapp.dom.domain.objects.DomainObject.nature.viewmodels.jaxbrefentity.ChildJdoEntities +
demoapp.dom.domain.objects.DomainObject.nature.viewmodels.jaxbrefentity.seed.ChildJdoSeedService +
demoapp.dom.domain.objects.other.embedded.NumberConstantJdoRepository +
demoapp.dom.domain.properties.Property.commandPublishing.PropertyCommandPublishingJdoEntities +
demoapp.dom.domain.properties.Property.commandPublishing.PropertyCommandPublishingJdoSeedService +
demoapp.dom.domain.properties.Property.executionPublishing.PropertyExecutionPublishingJdoEntities +
demoapp.dom.domain.properties.Property.executionPublishing.PropertyExecutionPublishingJdoSeedService +
demoapp.dom.domain.properties.Property.projecting.jdo.PropertyProjectingChildJdoEntities +
demoapp.dom.domain.properties.Property.projecting.jdo.PropertyProjectingChildJdoSeedService +
demoapp.dom.domain.properties.PropertyLayout.navigable.FileTreeNodeService +
demoapp.dom.domain.properties.PropertyLayout.repainting.PdfJsViewerAdvisorFallback +
demoapp.dom.featured.customui.geocoding.GeoapifyClient +
demoapp.dom.services.core.errorreportingservice.ErrorReportingServiceDemoImplementation +
demoapp.dom.services.core.eventbusservice.EventLogEntryJdoRepository +
demoapp.dom.services.core.eventbusservice.EventSubscriberDemoImplementation +
demoapp.dom.services.core.wrapperFactory.WrapperFactoryJdoEntities +
demoapp.dom.services.core.wrapperFactory.WrapperFactoryJdoSeedService +
demoapp.dom.services.extensions.secman.apptenancy.ApplicationTenancyEvaluatorForDemo +
demoapp.dom.services.extensions.secman.apptenancy.entities.TenantedJdoEntities +
demoapp.dom.services.extensions.secman.apptenancy.entities.seed.TenantedJdoSeedService +
demoapp.dom.types.isis.blobs.jdo.IsisBlobJdoEntities +
demoapp.dom.types.isis.blobs.jdo.IsisBlobJdoSeedService +
demoapp.dom.types.isis.blobs.samples.IsisBlobsSamples +
demoapp.dom.types.isis.clobs.jdo.IsisClobJdoEntities +
demoapp.dom.types.isis.clobs.jdo.IsisClobJdoSeedService +
demoapp.dom.types.isis.clobs.samples.IsisClobsSamples +
demoapp.dom.types.isis.localresourcepaths.jdo.IsisLocalResourcePathJdoEntities +
demoapp.dom.types.isis.localresourcepaths.jdo.IsisLocalResourcePathJdoSeedService +
demoapp.dom.types.isis.localresourcepaths.samples.IsisLocalResourcePathsSamples +
demoapp.dom.types.isis.markups.jdo.IsisMarkupJdoEntities +
demoapp.dom.types.isis.markups.jdo.IsisMarkupJdoSeedService +
demoapp.dom.types.isis.markups.samples.IsisMarkupSamples +
demoapp.dom.types.isis.passwords.jdo.IsisPasswordJdoEntities +
demoapp.dom.types.isis.passwords.jdo.IsisPasswordJdoSeedService +
demoapp.dom.types.isis.passwords.samples.IsisPasswordsSamples +
demoapp.dom.types.isisext.asciidocs.jdo.IsisAsciiDocJdoEntities +
demoapp.dom.types.isisext.asciidocs.jdo.IsisAsciiDocJdoSeedService +
demoapp.dom.types.isisext.asciidocs.samples.IsisAsciiDocSamples +
demoapp.dom.types.isisext.markdowns.jdo.IsisMarkdownJdoEntities +
demoapp.dom.types.isisext.markdowns.jdo.IsisMarkdownJdoSeedService +
demoapp.dom.types.isisext.markdowns.samples.IsisMarkdownSamples +
demoapp.dom.types.javaawt.images.jdo.JavaAwtImageJdoEntities +
demoapp.dom.types.javaawt.images.jdo.JavaAwtImageJdoSeedService +
demoapp.dom.types.javaawt.images.samples.JavaAwtImageService +
demoapp.dom.types.javaawt.images.samples.JavaAwtImagesSamples +
demoapp.dom.types.javalang.booleans.jdo.WrapperBooleanJdoEntities +
demoapp.dom.types.javalang.booleans.jdo.WrapperBooleanJdoSeedService +
demoapp.dom.types.javalang.booleans.samples.WrapperBooleanSamples +
demoapp.dom.types.javalang.bytes.jdo.WrapperByteJdoEntities +
demoapp.dom.types.javalang.bytes.jdo.WrapperByteJdoSeedService +
demoapp.dom.types.javalang.bytes.samples.WrapperByteSamples +
demoapp.dom.types.javalang.characters.jdo.WrapperCharacterJdoEntities +
demoapp.dom.types.javalang.characters.jdo.WrapperCharacterJdoSeedService +
demoapp.dom.types.javalang.characters.samples.WrapperCharacterSamples +
demoapp.dom.types.javalang.doubles.jdo.WrapperDoubleJdoEntities +
demoapp.dom.types.javalang.doubles.jdo.WrapperDoubleJdoSeedService +
demoapp.dom.types.javalang.doubles.samples.WrapperDoubleSamples +
demoapp.dom.types.javalang.floats.jdo.WrapperFloatJdoEntities +
demoapp.dom.types.javalang.floats.jdo.WrapperFloatJdoSeedService +
demoapp.dom.types.javalang.floats.samples.WrapperFloatSamples +
demoapp.dom.types.javalang.integers.jdo.WrapperIntegerJdoEntities +
demoapp.dom.types.javalang.integers.jdo.WrapperIntegerJdoSeedService +
demoapp.dom.types.javalang.integers.samples.WrapperIntegerSamples +
demoapp.dom.types.javalang.longs.jdo.WrapperLongJdoEntities +
demoapp.dom.types.javalang.longs.jdo.WrapperLongJdoSeedService +
demoapp.dom.types.javalang.longs.samples.WrapperLongSamples +
demoapp.dom.types.javalang.shorts.jdo.WrapperShortJdoEntities +
demoapp.dom.types.javalang.shorts.jdo.WrapperShortJdoSeedService +
demoapp.dom.types.javalang.shorts.samples.WrapperShortSamples +
demoapp.dom.types.javalang.strings.jdo.JavaLangStringJdoEntities +
demoapp.dom.types.javalang.strings.jdo.JavaLangStringJdoSeedService +
demoapp.dom.types.javalang.strings.samples.JavaLangStringSamples +
demoapp.dom.types.javamath.bigdecimals.jdo.JavaMathBigDecimalJdoEntities +
demoapp.dom.types.javamath.bigdecimals.jdo.JavaMathBigDecimalJdoSeedService +
demoapp.dom.types.javamath.bigdecimals.samples.JavaMathBigDecimalSamples +
demoapp.dom.types.javamath.bigintegers.jdo.JavaMathBigIntegerJdoEntities +
demoapp.dom.types.javamath.bigintegers.jdo.JavaMathBigIntegerJdoSeedService +
demoapp.dom.types.javamath.bigintegers.samples.JavaMathBigIntegerSamples +
demoapp.dom.types.javanet.urls.jdo.JavaNetUrlJdoEntities +
demoapp.dom.types.javanet.urls.jdo.JavaNetUrlJdoSeedService +
demoapp.dom.types.javanet.urls.samples.JavaNetUrlSamples +
demoapp.dom.types.javasql.javasqldate.jdo.JavaSqlDateJdoEntities +
demoapp.dom.types.javasql.javasqldate.jdo.JavaSqlDateJdoSeedService +
demoapp.dom.types.javasql.javasqldate.samples.JavaSqlDateSamples +
demoapp.dom.types.javasql.javasqltimestamp.jdo.JavaSqlTimestampJdoEntities +
demoapp.dom.types.javasql.javasqltimestamp.jdo.JavaSqlTimestampJdoSeedService +
demoapp.dom.types.javasql.javasqltimestamp.samples.JavaSqlTimestampSamples +
demoapp.dom.types.javatime.javatimelocaldate.jdo.JavaTimeLocalDateJdoEntities +
demoapp.dom.types.javatime.javatimelocaldate.jdo.JavaTimeLocalDateJdoSeedService +
demoapp.dom.types.javatime.javatimelocaldate.samples.JavaTimeLocalDateSamples +
demoapp.dom.types.javatime.javatimelocaldatetime.jdo.JavaTimeLocalDateTimeJdoEntities +
demoapp.dom.types.javatime.javatimelocaldatetime.jdo.JavaTimeLocalDateTimeJdoSeedService +
demoapp.dom.types.javatime.javatimelocaldatetime.samples.JavaTimeLocalDateTimeSamples +
demoapp.dom.types.javatime.javatimeoffsetdatetime.jdo.JavaTimeOffsetDateTimeJdoEntities +
demoapp.dom.types.javatime.javatimeoffsetdatetime.jdo.JavaTimeOffsetDateTimeJdoSeedService +
demoapp.dom.types.javatime.javatimeoffsetdatetime.samples.JavaTimeOffsetDateTimeSamples +
demoapp.dom.types.javatime.javatimeoffsettime.jdo.JavaTimeOffsetTimeJdoEntities +
demoapp.dom.types.javatime.javatimeoffsettime.jdo.JavaTimeOffsetTimeJdoSeedService +
demoapp.dom.types.javatime.javatimeoffsettime.samples.JavaTimeOffsetTimeSamples +
demoapp.dom.types.javatime.javatimezoneddatetime.jdo.JavaTimeZonedDateTimeJdoEntities +
demoapp.dom.types.javatime.javatimezoneddatetime.jdo.JavaTimeZonedDateTimeJdoSeedService +
demoapp.dom.types.javatime.javatimezoneddatetime.samples.JavaTimeZonedDateTimeSamples +
demoapp.dom.types.javautil.javautildate.jdo.JavaUtilDateJdoEntities +
demoapp.dom.types.javautil.javautildate.jdo.JavaUtilDateJdoSeedService +
demoapp.dom.types.javautil.javautildate.samples.JavaUtilDateSamples +
demoapp.dom.types.javautil.uuids.jdo.JavaUtilUuidJdoEntities +
demoapp.dom.types.javautil.uuids.jdo.JavaUtilUuidJdoSeedService +
demoapp.dom.types.javautil.uuids.samples.JavaUtilUuidSamples +
demoapp.dom.types.jodatime.jodadatetime.jdo.JodaDateTimeJdoEntities +
demoapp.dom.types.jodatime.jodadatetime.jdo.JodaDateTimeJdoSeedService +
demoapp.dom.types.jodatime.jodadatetime.samples.JodaDateTimeSamples +
demoapp.dom.types.jodatime.jodalocaldate.jdo.JodaLocalDateJdoEntities +
demoapp.dom.types.jodatime.jodalocaldate.jdo.JodaLocalDateJdoSeedService +
demoapp.dom.types.jodatime.jodalocaldate.samples.JodaLocalDateSamples +
demoapp.dom.types.jodatime.jodalocaldatetime.jdo.JodaLocalDateTimeJdoEntities +
demoapp.dom.types.jodatime.jodalocaldatetime.jdo.JodaLocalDateTimeJdoSeedService +
demoapp.dom.types.jodatime.jodalocaldatetime.samples.JodaLocalDateTimeSamples +
demoapp.dom.types.primitive.booleans.jdo.PrimitiveBooleanJdoEntities +
demoapp.dom.types.primitive.booleans.jdo.PrimitiveBooleanJdoSeedService +
demoapp.dom.types.primitive.bytes.jdo.PrimitiveByteJdoEntities +
demoapp.dom.types.primitive.bytes.jdo.PrimitiveByteJdoSeedService +
demoapp.dom.types.primitive.chars.jdo.PrimitiveCharJdoEntities +
demoapp.dom.types.primitive.chars.jdo.PrimitiveCharJdoSeedService +
demoapp.dom.types.primitive.doubles.jdo.PrimitiveDoubleJdoEntities +
demoapp.dom.types.primitive.doubles.jdo.PrimitiveDoubleJdoSeedService +
demoapp.dom.types.primitive.floats.jdo.PrimitiveFloatJdoEntities +
demoapp.dom.types.primitive.floats.jdo.PrimitiveFloatJdoSeedService +
demoapp.dom.types.primitive.ints.jdo.PrimitiveIntJdoEntities +
demoapp.dom.types.primitive.ints.jdo.PrimitiveIntJdoSeedService +
demoapp.dom.types.primitive.longs.jdo.PrimitiveLongJdoEntities +
demoapp.dom.types.primitive.longs.jdo.PrimitiveLongJdoSeedService +
demoapp.dom.types.primitive.shorts.jdo.PrimitiveShortJdoEntities +
demoapp.dom.types.primitive.shorts.jdo.PrimitiveShortJdoSeedService +
****

.Dependencies
****
com.h2database:h2:jar:<managed> +
org.apache.isis.extensions:isis-extensions-command-log-jdo:jar:<managed> +
org.apache.isis.extensions:isis-extensions-exceldownload-ui:jar:<managed> +
org.apache.isis.extensions:isis-extensions-modelannotation:jar:<managed> +
org.apache.isis.extensions:isis-extensions-pdfjs-applib:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-encryption-jbcrypt:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-persistence-jdo:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-shiro-realm:jar:<managed> +
org.apache.isis.testing:isis-testing-h2console-ui:jar:<managed> +
org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed> +
org.assertj:assertj-core:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
org.springframework.boot:spring-boot-configuration-processor:jar:<managed> +
****

|Demo - JavaFX
[source,yaml]
----
Group: org.apache.isis.examples.apps
Artifact: demo-javafx
Type: jar
Directory: /examples/demo/javafx
----
|.Dependencies
****
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.core:isis-core-security:jar:<managed> +
org.apache.isis.examples.apps:demo-domain:jar:${project.version} +
org.apache.isis.incubator.viewer:isis-viewer-javafx-viewer:jar:${project.version} +
org.apache.isis.mavendeps:isis-mavendeps-integtests:pom:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.security:isis-security-bypass:jar:<managed> +
org.apache.isis.security:isis-security-shiro:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui:pom:${project.version} +
org.apache.isis.valuetypes:isis-valuetypes-markdown-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-ui:pom:${project.version} +
org.projectlombok:lombok:jar:<managed> +
****

|Demo - Vaadin
[source,yaml]
----
Group: org.apache.isis.examples.apps
Artifact: demo-vaadin
Type: jar
Directory: /examples/demo/vaadin
----
|.Dependencies
****
org.apache.isis.examples.apps:demo-web:jar:${project.version} +
org.apache.isis.incubator.viewer:isis-viewer-vaadin-viewer:jar:${project.version} +
org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui-vaa:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui-wkt:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-ui-wkt:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-sse-ui-wkt:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

|Demo - Web
[source,yaml]
----
Group: org.apache.isis.examples.apps
Artifact: demo-web
Type: jar
Directory: /examples/demo/web
----
|.Components
****
demoapp.web._infra.utils.ThereCanBeOnlyOne +
****

.Dependencies
****
org.apache.isis.examples.apps:demo-domain:jar:${project.version} +
org.apache.isis.extensions:isis-extensions-command-replay-primary:jar:<managed> +
org.apache.isis.extensions:isis-extensions-command-replay-secondary:jar:<managed> +
org.apache.isis.extensions:isis-extensions-cors-impl:jar:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:<managed> +
org.springframework.boot:spring-boot-starter:jar:<managed> +
org.springframework.boot:spring-boot-starter-actuator:jar:<managed> +
org.springframework.boot:spring-boot-starter-log4j2:jar:<managed> +
****

|Demo - Wicket
[source,yaml]
----
Group: org.apache.isis.examples.apps
Artifact: demo-wicket
Type: jar
Directory: /examples/demo/wicket
----
|.Components
****
demoapp.webapp.wicket.ui.custom.WhereInTheWorldPanelFactory +
****

.Dependencies
****
org.apache.isis.examples.apps:demo-web:jar:${project.version} +
org.apache.isis.extensions:isis-extensions-pdfjs-ui:jar:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-ui-wkt:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-ui-wkt:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-sse-ui-wkt:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:2.0.0-SNAPSHOT +
org.apache.isis.viewer:isis-viewer-wicket-viewer:jar:2.0.0-SNAPSHOT +
****
|===

== Root

[plantuml,Root,svg]
----
@startuml(id=Root)
title Root - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Root\n[Software System]" {
  rectangle "==Apache Isis\n<size:10>[Container: packaging: pom]</size>" <<4>> as 4
  rectangle "==Apache Isis (Aggregator)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis - Antora\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
  rectangle "==Apache Isis Supplemental - Legal Info\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
}
2 .[#707070].> 4 : ""
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (Root)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis (Aggregator)
[source,yaml]
----
Group: org.apache.isis
Artifact: isis-all
Type: pom
Directory: /
----
|Convenience aggregator POM that references all modules, some explicitely,
others via profiles, that are not activiated per default.
The parent POM of the core framework is isis-parent/pom.xml.

|Apache Isis - Antora
[source,yaml]
----
Group: org.apache.isis
Artifact: antora
Type: pom
Directory: /antora
----
|

|Apache Isis
[source,yaml]
----
Group: org.apache.isis
Artifact: isis-parent
Type: pom
Directory: /isis-parent
----
|Parent for the core framework + extensions, starter parent pom for starter apps.

|Apache Isis Supplemental - Legal Info
[source,yaml]
----
Group: org.apache.isis
Artifact: supplemental-model
Type: jar
Directory: /supplemental-model
----
|For example, the templates used by many Apache distributions assemble a listing of project dependencies
according to their organization name (and URL), along with the URL each project's website. When dependency
POMs are missing this information, the dependency notice file that the Remote Resources Plugin renders can
be invalid.
To compensate for incomplete dependency POMs, we use the supplemental models support.
|===

== Commons

[plantuml,Commons,svg]
----
@startuml(id=Commons)
title Commons - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Commons\n[Software System]" {
  rectangle "==Apache Isis Commons\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Commons)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Commons
[source,yaml]
----
Group: org.apache.isis.commons
Artifact: isis-commons
Type: jar
Directory: /commons
----
|Apache Isis Commons is a library with utilities, that are shared with the entire Apache Isis ecosystem.

.Dependencies
****
com.fasterxml.jackson.core:jackson-databind:jar:<managed> +
com.google.code.findbugs:annotations:jar:<managed> +
javax:javaee-api:jar:<managed> +
org.junit.jupiter:junit-jupiter-api:jar:<managed> +
org.junit.jupiter:junit-jupiter-engine:jar:<managed> +
org.junit.jupiter:junit-jupiter-params:jar:<managed> +
org.junit.vintage:junit-vintage-engine:jar:<managed> +
org.slf4j:slf4j-api:jar:<managed> +
org.springframework:spring-context:jar:<managed> +
org.springframework:spring-tx:jar:<managed> +
org.springframework.boot:spring-boot-starter:jar:<managed> +
org.springframework.boot:spring-boot-starter-log4j2:jar:<managed> +
org.yaml:snakeyaml:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:commons:index/collections/Can.adoc[Can], xref:refguide:commons:index/collections/Cardinality.adoc[Cardinality], xref:refguide:commons:index/functional/Result.adoc[Result], xref:refguide:commons:index/resource/ResourceCoordinates.adoc[ResourceCoordinates]
****
|===

== Core

[plantuml,Core,svg]
----
@startuml(id=Core)
title Core - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<11>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<12>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<13>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<14>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<15>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<9>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<10>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Core\n[Software System]" {
  rectangle "==Apache Isis - JDK Supplemental\n<size:10>[Container: packaging: pom]</size>" <<14>> as 14
  rectangle "==Apache Isis Core\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Core - AppLib\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Core - Code Gen (ByteBuddy)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Core - Configuration\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Core - Interaction\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Core - MetaModel\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
  rectangle "==Apache Isis Core - Runtime\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
  rectangle "==Apache Isis Core - Runtime Services\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
  rectangle "==Apache Isis Core - Schemas\n<size:10>[Container: packaging: jar]</size>" <<15>> as 15
  rectangle "==Apache Isis Core - Security\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
  rectangle "==Apache Isis Core - Transaction\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
  rectangle "==Apache Isis Core - Unit Test Support\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
  rectangle "==Apache Isis Core - WebApp\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
}
2 .[#707070].> 14 : ""
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 8 : ""
2 .[#707070].> 9 : ""
2 .[#707070].> 10 : ""
2 .[#707070].> 15 : ""
2 .[#707070].> 11 : ""
2 .[#707070].> 12 : ""
2 .[#707070].> 7 : ""
2 .[#707070].> 13 : ""
@enduml
----
.Projects/Modules (Core)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Core
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core
Type: pom
Directory: /core
----
|Core framework, providing metamodel, runtime and core APIs.

.Dependencies
****
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Core - AppLib
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-applib
Type: jar
Directory: /api/applib
----
|Isis application library, defining annotations and utilities for the
default (Java) programming model.

.Components
****
o.a.i.applib.annotation.DomainObject +
o.a.i.applib.annotation.DomainService +
o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandDto +
o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandsDto +
o.a.i.applib.services.commanddto.processor.spi.CommandDtoProcessorServiceIdentity +
o.a.i.applib.services.publishing.log.CommandLogger +
o.a.i.applib.services.publishing.log.EntityChangesLogger +
o.a.i.applib.services.publishing.log.EntityPropertyChangeLogger +
o.a.i.applib.services.publishing.log.ExecutionLogger +
o.a.i.applib.services.session.SessionLoggingServiceLogging +
****

.Dependencies
****
com.google.code.findbugs:annotations:jar:<managed> +
javax:javaee-api:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-schema:jar:<managed> +
org.assertj:assertj-core:jar:<managed> +
org.jmock:jmock:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:applib:index/AbstractViewModel.adoc[AbstractViewModel], xref:refguide:applib:index/Identifier.adoc[Identifier], xref:refguide:applib:index/IsisModuleApplib.adoc[IsisModuleApplib], xref:refguide:applib:index/RecreatableDomainObject.adoc[RecreatableDomainObject], xref:refguide:applib:index/ViewModel.adoc[ViewModel], xref:refguide:applib:index/adapters/AbstractValueSemanticsProvider.adoc[AbstractValueSemanticsProvider], xref:refguide:applib:index/adapters/DefaultsProvider.adoc[DefaultsProvider], xref:refguide:applib:index/adapters/EncoderDecoder.adoc[EncoderDecoder], xref:refguide:applib:index/adapters/EncodingException.adoc[EncodingException], xref:refguide:applib:index/adapters/Parser.adoc[Parser], xref:refguide:applib:index/adapters/ParsingException.adoc[ParsingException], xref:refguide:applib:index/adapters/ValueSemanticsProvider.adoc[ValueSemanticsProvider], xref:refguide:applib:index/annotation/Action.adoc[Action], xref:refguide:applib:index/annotation/ActionLayout.adoc[ActionLayout], xref:refguide:applib:index/annotation/BookmarkPolicy.adoc[BookmarkPolicy], xref:refguide:applib:index/annotation/Bounding.adoc[Bounding], xref:refguide:applib:index/annotation/Collection.adoc[Collection], xref:refguide:applib:index/annotation/CollectionLayout.adoc[CollectionLayout], xref:refguide:applib:index/annotation/Defaulted.adoc[Defaulted], xref:refguide:applib:index/annotation/DomainObject.adoc[DomainObject], xref:refguide:applib:index/annotation/DomainObjectLayout.adoc[DomainObjectLayout], xref:refguide:applib:index/annotation/DomainService.adoc[DomainService], xref:refguide:applib:index/annotation/DomainServiceLayout.adoc[DomainServiceLayout], xref:refguide:applib:index/annotation/DomainServiceLayout~MenuBar.adoc[DomainServiceLayout.MenuBar], xref:refguide:applib:index/annotation/Editing.adoc[Editing], xref:refguide:applib:index/annotation/EntityChangeKind.adoc[EntityChangeKind], xref:refguide:applib:index/annotation/EqualByContent.adoc[EqualByContent], xref:refguide:applib:index/annotation/Facets.adoc[Facets], xref:refguide:applib:index/annotation/HomePage.adoc[HomePage], xref:refguide:applib:index/annotation/InteractionScope.adoc[InteractionScope], xref:refguide:applib:index/annotation/LabelPosition.adoc[LabelPosition], xref:refguide:applib:index/annotation/MemberOrder.adoc[MemberOrder], xref:refguide:applib:index/annotation/MinLength.adoc[MinLength], xref:refguide:applib:index/annotation/Module.adoc[Module], xref:refguide:applib:index/annotation/Nature.adoc[Nature], xref:refguide:applib:index/annotation/NatureOfService.adoc[NatureOfService], xref:refguide:applib:index/annotation/Navigable.adoc[Navigable], xref:refguide:applib:index/annotation/Optionality.adoc[Optionality], xref:refguide:applib:index/annotation/OrderPrecedence.adoc[OrderPrecedence], xref:refguide:applib:index/annotation/Parameter.adoc[Parameter], xref:refguide:applib:index/annotation/ParameterLayout.adoc[ParameterLayout], xref:refguide:applib:index/annotation/Programmatic.adoc[Programmatic], xref:refguide:applib:index/annotation/Projecting.adoc[Projecting], xref:refguide:applib:index/annotation/PromptStyle.adoc[PromptStyle], xref:refguide:applib:index/annotation/Property.adoc[Property], xref:refguide:applib:index/annotation/PropertyLayout.adoc[PropertyLayout], xref:refguide:applib:index/annotation/Publishing.adoc[Publishing], xref:refguide:applib:index/annotation/Redirect.adoc[Redirect], xref:refguide:applib:index/annotation/RenderDay.adoc[RenderDay], xref:refguide:applib:index/annotation/Repainting.adoc[Repainting], xref:refguide:applib:index/annotation/RestrictTo.adoc[RestrictTo], xref:refguide:applib:index/annotation/SemanticsOf.adoc[SemanticsOf], xref:refguide:applib:index/annotation/Snapshot.adoc[Snapshot], xref:refguide:applib:index/annotation/Title.adoc[Title], xref:refguide:applib:index/annotation/Value.adoc[Value], xref:refguide:applib:index/annotation/Where.adoc[Where], xref:refguide:applib:index/client/RepresentationTypeSimplifiedV2.adoc[RepresentationTypeSimplifiedV2], xref:refguide:applib:index/client/SuppressionType.adoc[SuppressionType], xref:refguide:applib:index/clock/VirtualClock.adoc[VirtualClock], xref:refguide:applib:index/domain/DomainObjectList.adoc[DomainObjectList], xref:refguide:applib:index/events/EventObjectBase.adoc[EventObjectBase], xref:refguide:applib:index/events/domain/AbstractDomainEvent.adoc[AbstractDomainEvent], xref:refguide:applib:index/events/domain/ActionDomainEvent.adoc[ActionDomainEvent], xref:refguide:applib:index/events/domain/CollectionDomainEvent.adoc[CollectionDomainEvent], xref:refguide:applib:index/events/domain/PropertyDomainEvent.adoc[PropertyDomainEvent], xref:refguide:applib:index/events/lifecycle/AbstractLifecycleEvent.adoc[AbstractLifecycleEvent], xref:refguide:applib:index/events/lifecycle/ObjectCreatedEvent.adoc[ObjectCreatedEvent], xref:refguide:applib:index/events/lifecycle/ObjectLoadedEvent.adoc[ObjectLoadedEvent], xref:refguide:applib:index/events/lifecycle/ObjectPersistedEvent.adoc[ObjectPersistedEvent], xref:refguide:applib:index/events/lifecycle/ObjectPersistingEvent.adoc[ObjectPersistingEvent], xref:refguide:applib:index/events/lifecycle/ObjectRemovingEvent.adoc[ObjectRemovingEvent], xref:refguide:applib:index/events/lifecycle/ObjectUpdatedEvent.adoc[ObjectUpdatedEvent], xref:refguide:applib:index/events/lifecycle/ObjectUpdatingEvent.adoc[ObjectUpdatingEvent], xref:refguide:applib:index/events/ui/AbstractUiEvent.adoc[AbstractUiEvent], xref:refguide:applib:index/events/ui/CssClassUiEvent.adoc[CssClassUiEvent], xref:refguide:applib:index/events/ui/IconUiEvent.adoc[IconUiEvent], xref:refguide:applib:index/events/ui/LayoutUiEvent.adoc[LayoutUiEvent], xref:refguide:applib:index/events/ui/TitleUiEvent.adoc[TitleUiEvent], xref:refguide:applib:index/exceptions/RecoverableException.adoc[RecoverableException], xref:refguide:applib:index/exceptions/TranslatableException.adoc[TranslatableException], xref:refguide:applib:index/exceptions/UnrecoverableException.adoc[UnrecoverableException], xref:refguide:applib:index/exceptions/unrecoverable/DomainModelException.adoc[DomainModelException], xref:refguide:applib:index/exceptions/unrecoverable/MetaModelException.adoc[MetaModelException], xref:refguide:applib:index/exceptions/unrecoverable/NoAuthenticatorException.adoc[NoAuthenticatorException], xref:refguide:applib:index/exceptions/unrecoverable/ObjectNotFoundException.adoc[ObjectNotFoundException], xref:refguide:applib:index/exceptions/unrecoverable/ObjectPersistenceException.adoc[ObjectPersistenceException], xref:refguide:applib:index/exceptions/unrecoverable/PersistFailedException.adoc[PersistFailedException], xref:refguide:applib:index/exceptions/unrecoverable/ReflectiveActionException.adoc[ReflectiveActionException], xref:refguide:applib:index/exceptions/unrecoverable/RepositoryException.adoc[RepositoryException], xref:refguide:applib:index/exceptions/unrecoverable/UnexpectedCallException.adoc[UnexpectedCallException], xref:refguide:applib:index/exceptions/unrecoverable/UnknownTypeException.adoc[UnknownTypeException], xref:refguide:applib:index/graph/Edge.adoc[Edge], xref:refguide:applib:index/graph/SimpleEdge.adoc[SimpleEdge], xref:refguide:applib:index/graph/Vertex.adoc[Vertex], xref:refguide:applib:index/graph/tree/LazyTreeNode.adoc[LazyTreeNode], xref:refguide:applib:index/graph/tree/TreeAdapter.adoc[TreeAdapter], xref:refguide:applib:index/graph/tree/TreeNode.adoc[TreeNode], xref:refguide:applib:index/graph/tree/TreePath.adoc[TreePath], xref:refguide:applib:index/graph/tree/TreeState.adoc[TreeState], xref:refguide:applib:index/id/HasLogicalType.adoc[HasLogicalType], xref:refguide:applib:index/id/LogicalType.adoc[LogicalType], xref:refguide:applib:index/jaxb/DataTypeFactory.adoc[DataTypeFactory], xref:refguide:applib:index/jaxb/JavaSqlJaxbAdapters.adoc[JavaSqlJaxbAdapters], xref:refguide:applib:index/jaxb/JavaSqlXMLGregorianCalendarMarshalling.adoc[JavaSqlXMLGregorianCalendarMarshalling], xref:refguide:applib:index/jaxb/JavaTimeJaxbAdapters.adoc[JavaTimeJaxbAdapters], xref:refguide:applib:index/jaxb/JavaTimeXMLGregorianCalendarMarshalling.adoc[JavaTimeXMLGregorianCalendarMarshalling], xref:refguide:applib:index/jaxb/JavaUtilJaxbAdapters.adoc[JavaUtilJaxbAdapters], xref:refguide:applib:index/jaxb/JodaTimeJaxbAdapters.adoc[JodaTimeJaxbAdapters], xref:refguide:applib:index/jaxb/JodaTimeXMLGregorianCalendarMarshalling.adoc[JodaTimeXMLGregorianCalendarMarshalling], xref:refguide:applib:index/jaxb/PersistentEntitiesAdapter.adoc[PersistentEntitiesAdapter], xref:refguide:applib:index/jaxb/PersistentEntityAdapter.adoc[PersistentEntityAdapter], xref:refguide:applib:index/jaxb/PrimitiveJaxbAdapters.adoc[PrimitiveJaxbAdapters], xref:refguide:applib:index/layout/component/ActionLayoutData.adoc[ActionLayoutData], xref:refguide:applib:index/layout/component/ActionLayoutDataOwner.adoc[ActionLayoutDataOwner], xref:refguide:applib:index/layout/component/CollectionLayoutData.adoc[CollectionLayoutData], xref:refguide:applib:index/layout/component/CollectionLayoutDataOwner.adoc[CollectionLayoutDataOwner], xref:refguide:applib:index/layout/component/CssClassFaPosition.adoc[CssClassFaPosition], xref:refguide:applib:index/layout/component/DomainObjectLayoutData.adoc[DomainObjectLayoutData], xref:refguide:applib:index/layout/component/DomainObjectLayoutDataOwner.adoc[DomainObjectLayoutDataOwner], xref:refguide:applib:index/layout/component/FieldSet.adoc[FieldSet], xref:refguide:applib:index/layout/component/FieldSetOwner.adoc[FieldSetOwner], xref:refguide:applib:index/layout/component/HasBookmarking.adoc[HasBookmarking], xref:refguide:applib:index/layout/component/HasCssClass.adoc[HasCssClass], xref:refguide:applib:index/layout/component/HasCssClassFa.adoc[HasCssClassFa], xref:refguide:applib:index/layout/component/HasDescribedAs.adoc[HasDescribedAs], xref:refguide:applib:index/layout/component/HasHidden.adoc[HasHidden], xref:refguide:applib:index/layout/component/HasNamed.adoc[HasNamed], xref:refguide:applib:index/layout/component/MemberRegion.adoc[MemberRegion], xref:refguide:applib:index/layout/component/MemberRegionOwner.adoc[MemberRegionOwner], xref:refguide:applib:index/layout/component/Owned.adoc[Owned], xref:refguide:applib:index/layout/component/Owner.adoc[Owner], xref:refguide:applib:index/layout/component/PropertyLayoutData.adoc[PropertyLayoutData], xref:refguide:applib:index/layout/component/ServiceActionLayoutData.adoc[ServiceActionLayoutData], xref:refguide:applib:index/layout/component/ServiceActionLayoutDataOwner.adoc[ServiceActionLayoutDataOwner], xref:refguide:applib:index/layout/grid/Grid.adoc[Grid], xref:refguide:applib:index/layout/grid/GridAbstract.adoc[GridAbstract], xref:refguide:applib:index/layout/grid/bootstrap3/BS3ClearFix.adoc[BS3ClearFix], xref:refguide:applib:index/layout/grid/bootstrap3/BS3ClearFixHidden.adoc[BS3ClearFixHidden], xref:refguide:applib:index/layout/grid/bootstrap3/BS3ClearFixVisible.adoc[BS3ClearFixVisible], xref:refguide:applib:index/layout/grid/bootstrap3/BS3Col.adoc[BS3Col], xref:refguide:applib:index/layout/grid/bootstrap3/BS3Element.adoc[BS3Element], xref:refguide:applib:index/layout/grid/bootstrap3/BS3ElementAbstract.adoc[BS3ElementAbstract], xref:refguide:applib:index/layout/grid/bootstrap3/BS3Grid.adoc[BS3Grid], xref:refguide:applib:index/layout/grid/bootstrap3/BS3Row.adoc[BS3Row], xref:refguide:applib:index/layout/grid/bootstrap3/BS3RowContent.adoc[BS3RowContent], xref:refguide:applib:index/layout/grid/bootstrap3/BS3RowContentOwner.adoc[BS3RowContentOwner], xref:refguide:applib:index/layout/grid/bootstrap3/BS3RowOwner.adoc[BS3RowOwner], xref:refguide:applib:index/layout/grid/bootstrap3/BS3Tab.adoc[BS3Tab], xref:refguide:applib:index/layout/grid/bootstrap3/BS3TabGroup.adoc[BS3TabGroup], xref:refguide:applib:index/layout/grid/bootstrap3/BS3TabGroupOwner.adoc[BS3TabGroupOwner], xref:refguide:applib:index/layout/grid/bootstrap3/BS3TabOwner.adoc[BS3TabOwner], xref:refguide:applib:index/layout/grid/bootstrap3/HasCssId.adoc[HasCssId], xref:refguide:applib:index/layout/grid/bootstrap3/Size.adoc[Size], xref:refguide:applib:index/layout/grid/bootstrap3/SizeSpan.adoc[SizeSpan], xref:refguide:applib:index/layout/grid/bootstrap3/WithinGrid.adoc[WithinGrid], xref:refguide:applib:index/layout/links/Link.adoc[Link], xref:refguide:applib:index/layout/menubars/HasNamed.adoc[HasNamed], xref:refguide:applib:index/layout/menubars/Menu.adoc[Menu], xref:refguide:applib:index/layout/menubars/MenuBar.adoc[MenuBar], xref:refguide:applib:index/layout/menubars/MenuBars.adoc[MenuBars], xref:refguide:applib:index/layout/menubars/MenuBarsAbstract.adoc[MenuBarsAbstract], xref:refguide:applib:index/layout/menubars/MenuSection.adoc[MenuSection], xref:refguide:applib:index/layout/menubars/bootstrap3/BS3Menu.adoc[BS3Menu], xref:refguide:applib:index/layout/menubars/bootstrap3/BS3MenuBar.adoc[BS3MenuBar], xref:refguide:applib:index/layout/menubars/bootstrap3/BS3MenuBars.adoc[BS3MenuBars], xref:refguide:applib:index/layout/menubars/bootstrap3/BS3MenuSection.adoc[BS3MenuSection], xref:refguide:applib:index/mixins/dto/Dto.adoc[Dto], xref:refguide:applib:index/mixins/dto/DtoMixinConstants.adoc[DtoMixinConstants], xref:refguide:applib:index/mixins/dto/Dto_downloadXml.adoc[Dto_downloadXml], xref:refguide:applib:index/mixins/dto/Dto_downloadXsd.adoc[Dto_downloadXsd], xref:refguide:applib:index/mixins/layout/LayoutMixinConstants.adoc[LayoutMixinConstants], xref:refguide:applib:index/mixins/layout/Object_downloadLayoutXml.adoc[Object_downloadLayoutXml], xref:refguide:applib:index/mixins/metamodel/Object_downloadMetamodelXml.adoc[Object_downloadMetamodelXml], xref:refguide:applib:index/mixins/metamodel/Object_objectIdentifier.adoc[Object_objectIdentifier], xref:refguide:applib:index/mixins/metamodel/Object_objectType.adoc[Object_objectType], xref:refguide:applib:index/mixins/metamodel/Object_rebuildMetamodel.adoc[Object_rebuildMetamodel], xref:refguide:applib:index/mixins/rest/Object_openRestApi.adoc[Object_openRestApi], xref:refguide:applib:index/mixins/security/HasUsername.adoc[HasUsername], xref:refguide:applib:index/mixins/system/DomainChangeRecord.adoc[DomainChangeRecord], xref:refguide:applib:index/mixins/system/DomainChangeRecord_openTargetObject.adoc[DomainChangeRecord_openTargetObject], xref:refguide:applib:index/mixins/system/DomainChangeRecord~ChangeType.adoc[DomainChangeRecord.ChangeType], xref:refguide:applib:index/mixins/system/HasInteractionId.adoc[HasInteractionId], xref:refguide:applib:index/mixins/system/HasTransactionId.adoc[HasTransactionId], xref:refguide:applib:index/mixins/updates/OnUpdatedAt.adoc[OnUpdatedAt], xref:refguide:applib:index/mixins/updates/OnUpdatedBy.adoc[OnUpdatedBy], xref:refguide:applib:index/mixins/updates/OnUpdatedByAndAt.adoc[OnUpdatedByAndAt], xref:refguide:applib:index/query/AllInstancesQuery.adoc[AllInstancesQuery], xref:refguide:applib:index/query/NamedQuery.adoc[NamedQuery], xref:refguide:applib:index/query/Query.adoc[Query], xref:refguide:applib:index/query/QueryRange.adoc[QueryRange], xref:refguide:applib:index/services/acceptheader/AcceptHeaderService.adoc[AcceptHeaderService], xref:refguide:applib:index/services/appfeat/ApplicationFeature.adoc[ApplicationFeature], xref:refguide:applib:index/services/appfeat/ApplicationFeatureId.adoc[ApplicationFeatureId], xref:refguide:applib:index/services/appfeat/ApplicationFeatureRepository.adoc[ApplicationFeatureRepository], xref:refguide:applib:index/services/appfeat/ApplicationFeatureSort.adoc[ApplicationFeatureSort], xref:refguide:applib:index/services/appfeat/ApplicationMemberSort.adoc[ApplicationMemberSort], xref:refguide:applib:index/services/bookmark/Bookmark.adoc[Bookmark], xref:refguide:applib:index/services/bookmark/BookmarkHolder.adoc[BookmarkHolder], xref:refguide:applib:index/services/bookmark/BookmarkHolder_lookup.adoc[BookmarkHolder_lookup], xref:refguide:applib:index/services/bookmark/BookmarkHolder_object.adoc[BookmarkHolder_object], xref:refguide:applib:index/services/bookmark/BookmarkService.adoc[BookmarkService], xref:refguide:applib:index/services/bookmarkui/BookmarkUiService.adoc[BookmarkUiService], xref:refguide:applib:index/services/clock/ClockService.adoc[ClockService], xref:refguide:applib:index/services/command/Command.adoc[Command], xref:refguide:applib:index/services/command/CommandExecutorService.adoc[CommandExecutorService], xref:refguide:applib:index/services/command/CommandOutcomeHandler.adoc[CommandOutcomeHandler], xref:refguide:applib:index/services/commanddto/HasCommandDto.adoc[HasCommandDto], xref:refguide:applib:index/services/commanddto/conmap/ContentMappingServiceForCommandDto.adoc[ContentMappingServiceForCommandDto], xref:refguide:applib:index/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc[ContentMappingServiceForCommandsDto], xref:refguide:applib:index/services/commanddto/conmap/UserDataKeys.adoc[UserDataKeys], xref:refguide:applib:index/services/commanddto/processor/CommandDtoProcessor.adoc[CommandDtoProcessor], xref:refguide:applib:index/services/commanddto/processor/CommandDtoProcessorForActionAbstract.adoc[CommandDtoProcessorForActionAbstract], xref:refguide:applib:index/services/commanddto/processor/CommandDtoProcessorForPropertyAbstract.adoc[CommandDtoProcessorForPropertyAbstract], xref:refguide:applib:index/services/commanddto/processor/spi/CommandDtoProcessorService.adoc[CommandDtoProcessorService], xref:refguide:applib:index/services/commanddto/processor/spi/CommandDtoProcessorServiceIdentity.adoc[CommandDtoProcessorServiceIdentity], xref:refguide:applib:index/services/confview/ConfigurationMenu.adoc[ConfigurationMenu], xref:refguide:applib:index/services/confview/ConfigurationProperty.adoc[ConfigurationProperty], xref:refguide:applib:index/services/confview/ConfigurationViewService.adoc[ConfigurationViewService], xref:refguide:applib:index/services/conmap/ContentMappingService.adoc[ContentMappingService], xref:refguide:applib:index/services/email/EmailService.adoc[EmailService], xref:refguide:applib:index/services/error/ErrorDetails.adoc[ErrorDetails], xref:refguide:applib:index/services/error/ErrorReportingService.adoc[ErrorReportingService], xref:refguide:applib:index/services/error/SimpleTicket.adoc[SimpleTicket], xref:refguide:applib:index/services/error/Ticket.adoc[Ticket], xref:refguide:applib:index/services/eventbus/EventBusService.adoc[EventBusService], xref:refguide:applib:index/services/exceprecog/Category.adoc[Category], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizer.adoc[ExceptionRecognizer], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizerAbstract.adoc[ExceptionRecognizerAbstract], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizerForType.adoc[ExceptionRecognizerForType], xref:refguide:applib:index/services/exceprecog/ExceptionRecognizerService.adoc[ExceptionRecognizerService], xref:refguide:applib:index/services/exceprecog/Recognition.adoc[Recognition], xref:refguide:applib:index/services/factory/FactoryService.adoc[FactoryService], xref:refguide:applib:index/services/grid/GridLoaderService.adoc[GridLoaderService], xref:refguide:applib:index/services/grid/GridService.adoc[GridService], xref:refguide:applib:index/services/grid/GridSystemService.adoc[GridSystemService], xref:refguide:applib:index/services/health/Health.adoc[Health], xref:refguide:applib:index/services/health/HealthCheckService.adoc[HealthCheckService], xref:refguide:applib:index/services/hint/HintIdProvider.adoc[HintIdProvider], xref:refguide:applib:index/services/hint/HintStore.adoc[HintStore], xref:refguide:applib:index/services/homepage/HomePageResolverService.adoc[HomePageResolverService], xref:refguide:applib:index/services/i18n/LocaleProvider.adoc[LocaleProvider], xref:refguide:applib:index/services/i18n/Mode.adoc[Mode], xref:refguide:applib:index/services/i18n/TranslatableString.adoc[TranslatableString], xref:refguide:applib:index/services/i18n/TranslationService.adoc[TranslationService], xref:refguide:applib:index/services/i18n/TranslationsResolver.adoc[TranslationsResolver], xref:refguide:applib:index/services/iactn/ActionInvocation.adoc[ActionInvocation], xref:refguide:applib:index/services/iactn/Execution.adoc[Execution], xref:refguide:applib:index/services/iactn/ExecutionContext.adoc[ExecutionContext], xref:refguide:applib:index/services/iactn/Interaction.adoc[Interaction], xref:refguide:applib:index/services/iactn/InteractionContext.adoc[InteractionContext], xref:refguide:applib:index/services/iactn/PropertyEdit.adoc[PropertyEdit], xref:refguide:applib:index/services/iactn/SequenceType.adoc[SequenceType], xref:refguide:applib:index/services/inject/ServiceInjector.adoc[ServiceInjector], xref:refguide:applib:index/services/jaxb/JaxbService.adoc[JaxbService], xref:refguide:applib:index/services/layout/LayoutService.adoc[LayoutService], xref:refguide:applib:index/services/layout/LayoutServiceMenu.adoc[LayoutServiceMenu], xref:refguide:applib:index/services/layout/Style.adoc[Style], xref:refguide:applib:index/services/linking/DeepLinkService.adoc[DeepLinkService], xref:refguide:applib:index/services/menu/MenuBarsLoaderService.adoc[MenuBarsLoaderService], xref:refguide:applib:index/services/menu/MenuBarsService.adoc[MenuBarsService], xref:refguide:applib:index/services/message/MessageService.adoc[MessageService], xref:refguide:applib:index/services/metamodel/BeanSort.adoc[BeanSort], xref:refguide:applib:index/services/metamodel/Config.adoc[Config], xref:refguide:applib:index/services/metamodel/DomainMember.adoc[DomainMember], xref:refguide:applib:index/services/metamodel/DomainModel.adoc[DomainModel], xref:refguide:applib:index/services/metamodel/MetaModelService.adoc[MetaModelService], xref:refguide:applib:index/services/metamodel/MetaModelServiceMenu.adoc[MetaModelServiceMenu], xref:refguide:applib:index/services/metrics/MetricsService.adoc[MetricsService], xref:refguide:applib:index/services/publishing/log/CommandLogger.adoc[CommandLogger], xref:refguide:applib:index/services/publishing/log/EntityChangesLogger.adoc[EntityChangesLogger], xref:refguide:applib:index/services/publishing/log/EntityPropertyChangeLogger.adoc[EntityPropertyChangeLogger], xref:refguide:applib:index/services/publishing/log/ExecutionLogger.adoc[ExecutionLogger], xref:refguide:applib:index/services/publishing/spi/CommandSubscriber.adoc[CommandSubscriber], xref:refguide:applib:index/services/publishing/spi/EntityChanges.adoc[EntityChanges], xref:refguide:applib:index/services/publishing/spi/EntityChangesSubscriber.adoc[EntityChangesSubscriber], xref:refguide:applib:index/services/publishing/spi/EntityPropertyChange.adoc[EntityPropertyChange], xref:refguide:applib:index/services/publishing/spi/EntityPropertyChangeSubscriber.adoc[EntityPropertyChangeSubscriber], xref:refguide:applib:index/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber], xref:refguide:applib:index/services/queryresultscache/MethodReferences.adoc[MethodReferences], xref:refguide:applib:index/services/queryresultscache/QueryResultsCache.adoc[QueryResultsCache], xref:refguide:applib:index/services/queryresultscache/QueryResultsCacheControl.adoc[QueryResultsCacheControl], xref:refguide:applib:index/services/registry/InstanceByPriorityComparator.adoc[InstanceByPriorityComparator], xref:refguide:applib:index/services/registry/ServiceRegistry.adoc[ServiceRegistry], xref:refguide:applib:index/services/repository/EntityState.adoc[EntityState], xref:refguide:applib:index/services/repository/RepositoryService.adoc[RepositoryService], xref:refguide:applib:index/services/routing/RoutingService.adoc[RoutingService], xref:refguide:applib:index/services/scratchpad/Scratchpad.adoc[Scratchpad], xref:refguide:applib:index/services/session/SessionLoggingService.adoc[SessionLoggingService], xref:refguide:applib:index/services/session/SessionLoggingServiceLogging.adoc[SessionLoggingServiceLogging], xref:refguide:applib:index/services/sudo/SudoService.adoc[SudoService], xref:refguide:applib:index/services/swagger/Format.adoc[Format], xref:refguide:applib:index/services/swagger/SwaggerService.adoc[SwaggerService], xref:refguide:applib:index/services/swagger/Visibility.adoc[Visibility], xref:refguide:applib:index/services/tablecol/TableColumnOrderForCollectionTypeAbstract.adoc[TableColumnOrderForCollectionTypeAbstract], xref:refguide:applib:index/services/tablecol/TableColumnOrderService.adoc[TableColumnOrderService], xref:refguide:applib:index/services/title/TitleService.adoc[TitleService], xref:refguide:applib:index/services/urlencoding/UrlEncodingService.adoc[UrlEncodingService], xref:refguide:applib:index/services/urlencoding/UrlEncodingServiceUsingBaseEncodingAbstract.adoc[UrlEncodingServiceUsingBaseEncodingAbstract], xref:refguide:applib:index/services/user/RoleMemento.adoc[RoleMemento], xref:refguide:applib:index/services/user/UserMemento.adoc[UserMemento], xref:refguide:applib:index/services/user/UserService.adoc[UserService], xref:refguide:applib:index/services/userprof/UserProfileService.adoc[UserProfileService], xref:refguide:applib:index/services/userreg/EmailNotificationService.adoc[EmailNotificationService], xref:refguide:applib:index/services/userreg/UserDetails.adoc[UserDetails], xref:refguide:applib:index/services/userreg/UserRegistrationService.adoc[UserRegistrationService], xref:refguide:applib:index/services/userreg/events/EmailEventAbstract.adoc[EmailEventAbstract], xref:refguide:applib:index/services/userreg/events/EmailRegistrationEvent.adoc[EmailRegistrationEvent], xref:refguide:applib:index/services/userreg/events/PasswordResetEvent.adoc[PasswordResetEvent], xref:refguide:applib:index/services/wrapper/DisabledException.adoc[DisabledException], xref:refguide:applib:index/services/wrapper/HiddenException.adoc[HiddenException], xref:refguide:applib:index/services/wrapper/InvalidException.adoc[InvalidException], xref:refguide:applib:index/services/wrapper/WrapperFactory.adoc[WrapperFactory], xref:refguide:applib:index/services/wrapper/WrappingObject.adoc[WrappingObject], xref:refguide:applib:index/services/wrapper/control/AsyncControl.adoc[AsyncControl], xref:refguide:applib:index/services/wrapper/control/ControlAbstract.adoc[ControlAbstract], xref:refguide:applib:index/services/wrapper/control/ExceptionHandler.adoc[ExceptionHandler], xref:refguide:applib:index/services/wrapper/control/ExceptionHandlerAbstract.adoc[ExceptionHandlerAbstract], xref:refguide:applib:index/services/wrapper/control/ExecutionMode.adoc[ExecutionMode], xref:refguide:applib:index/services/wrapper/control/SyncControl.adoc[SyncControl], xref:refguide:applib:index/services/wrapper/events/AccessEvent.adoc[AccessEvent], xref:refguide:applib:index/services/wrapper/events/ActionArgumentEvent.adoc[ActionArgumentEvent], xref:refguide:applib:index/services/wrapper/events/ActionInvocationEvent.adoc[ActionInvocationEvent], xref:refguide:applib:index/services/wrapper/events/ActionUsabilityEvent.adoc[ActionUsabilityEvent], xref:refguide:applib:index/services/wrapper/events/ActionVisibilityEvent.adoc[ActionVisibilityEvent], xref:refguide:applib:index/services/wrapper/events/CollectionAccessEvent.adoc[CollectionAccessEvent], xref:refguide:applib:index/services/wrapper/events/CollectionAddToEvent.adoc[CollectionAddToEvent], xref:refguide:applib:index/services/wrapper/events/CollectionMethodEvent.adoc[CollectionMethodEvent], xref:refguide:applib:index/services/wrapper/events/CollectionRemoveFromEvent.adoc[CollectionRemoveFromEvent], xref:refguide:applib:index/services/wrapper/events/CollectionUsabilityEvent.adoc[CollectionUsabilityEvent], xref:refguide:applib:index/services/wrapper/events/InteractionEvent.adoc[InteractionEvent], xref:refguide:applib:index/services/wrapper/events/ObjectTitleEvent.adoc[ObjectTitleEvent], xref:refguide:applib:index/services/wrapper/events/ObjectValidityEvent.adoc[ObjectValidityEvent], xref:refguide:applib:index/services/wrapper/events/ObjectVisibilityEvent.adoc[ObjectVisibilityEvent], xref:refguide:applib:index/services/wrapper/events/ParseValueEvent.adoc[ParseValueEvent], xref:refguide:applib:index/services/wrapper/events/PropertyAccessEvent.adoc[PropertyAccessEvent], xref:refguide:applib:index/services/wrapper/events/PropertyModifyEvent.adoc[PropertyModifyEvent], xref:refguide:applib:index/services/wrapper/events/PropertyUsabilityEvent.adoc[PropertyUsabilityEvent], xref:refguide:applib:index/services/wrapper/events/PropertyVisibilityEvent.adoc[PropertyVisibilityEvent], xref:refguide:applib:index/services/wrapper/events/ProposedHolderEvent.adoc[ProposedHolderEvent], xref:refguide:applib:index/services/wrapper/events/UsabilityEvent.adoc[UsabilityEvent], xref:refguide:applib:index/services/wrapper/events/ValidityEvent.adoc[ValidityEvent], xref:refguide:applib:index/services/wrapper/events/VisibilityEvent.adoc[VisibilityEvent], xref:refguide:applib:index/services/wrapper/listeners/InteractionAdapter.adoc[InteractionAdapter], xref:refguide:applib:index/services/wrapper/listeners/InteractionListener.adoc[InteractionListener], xref:refguide:applib:index/services/xactn/TransactionId.adoc[TransactionId], xref:refguide:applib:index/services/xactn/TransactionService.adoc[TransactionService], xref:refguide:applib:index/services/xactn/TransactionState.adoc[TransactionState], xref:refguide:applib:index/services/xactn/TransactionalProcessor.adoc[TransactionalProcessor], xref:refguide:applib:index/services/xml/XmlService.adoc[XmlService], xref:refguide:applib:index/services/xmlsnapshot/XmlSnapshotService.adoc[XmlSnapshotService], xref:refguide:applib:index/services/xmlsnapshot/XmlSnapshotService~Snapshot.adoc[XmlSnapshotService.Snapshot], xref:refguide:applib:index/services/xmlsnapshot/XmlSnapshotService~Snapshot~Builder.adoc[XmlSnapshotService.Snapshot.Builder], xref:refguide:applib:index/snapshot/SnapshottableWithInclusions.adoc[SnapshottableWithInclusions], xref:refguide:applib:index/spec/AbstractSpecification.adoc[AbstractSpecification], xref:refguide:applib:index/spec/AbstractSpecification2.adoc[AbstractSpecification2], xref:refguide:applib:index/spec/Specification.adoc[Specification], xref:refguide:applib:index/spec/Specification2.adoc[Specification2], xref:refguide:applib:index/spec/SpecificationAnd.adoc[SpecificationAnd], xref:refguide:applib:index/spec/SpecificationNot.adoc[SpecificationNot], xref:refguide:applib:index/spec/SpecificationOr.adoc[SpecificationOr], xref:refguide:applib:index/types/DescriptionType.adoc[DescriptionType], xref:refguide:applib:index/types/MemberIdentifierType.adoc[MemberIdentifierType], xref:refguide:applib:index/types/TargetActionType.adoc[TargetActionType], xref:refguide:applib:index/types/TargetClassType.adoc[TargetClassType], xref:refguide:applib:index/util/Enums.adoc[Enums], xref:refguide:applib:index/util/Equality.adoc[Equality], xref:refguide:applib:index/util/Hashing.adoc[Hashing], xref:refguide:applib:index/util/JaxbUtil.adoc[JaxbUtil], xref:refguide:applib:index/util/ObjectContracts.adoc[ObjectContracts], xref:refguide:applib:index/util/ReasonBuffer.adoc[ReasonBuffer], xref:refguide:applib:index/util/ReasonBuffer2.adoc[ReasonBuffer2], xref:refguide:applib:index/util/Reasons.adoc[Reasons], xref:refguide:applib:index/util/TitleBuffer.adoc[TitleBuffer], xref:refguide:applib:index/util/TitleBufferException.adoc[TitleBufferException], xref:refguide:applib:index/util/ToString.adoc[ToString], xref:refguide:applib:index/util/schema/ChangesDtoUtils.adoc[ChangesDtoUtils], xref:refguide:applib:index/util/schema/CommandDtoUtils.adoc[CommandDtoUtils], xref:refguide:applib:index/util/schema/CommonDtoUtils.adoc[CommonDtoUtils], xref:refguide:applib:index/util/schema/InteractionDtoUtils.adoc[InteractionDtoUtils], xref:refguide:applib:index/util/schema/MemberExecutionDtoUtils.adoc[MemberExecutionDtoUtils], xref:refguide:applib:index/value/Blob.adoc[Blob], xref:refguide:applib:index/value/Clob.adoc[Clob], xref:refguide:applib:index/value/HasHtml.adoc[HasHtml], xref:refguide:applib:index/value/LocalResourcePath.adoc[LocalResourcePath], xref:refguide:applib:index/value/Markup.adoc[Markup], xref:refguide:applib:index/value/NamedWithMimeType.adoc[NamedWithMimeType], xref:refguide:applib:index/value/OpenUrlStrategy.adoc[OpenUrlStrategy], xref:refguide:applib:index/value/Password.adoc[Password]
****

|Apache Isis Core - Code Gen (ByteBuddy)
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-codegen-bytebuddy
Type: jar
Directory: /core/codegen-bytebuddy
----
|Code generation using ByteBuddy.

.Components
****
o.a.i.core.codegen.bytebuddy.services.ProxyFactoryServiceByteBuddy +
****

.Dependencies
****
net.bytebuddy:byte-buddy:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.objenesis:objenesis:jar:<managed> +
****

|Apache Isis Core - Configuration
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-config
Type: jar
Directory: /core/config
----
|Isis configuration library for framework internal use.

.Components
****
o.a.i.core.config.RestEasyConfiguration$RestfulPathProviderImpl +
o.a.i.core.config.beans.IsisBeanFactoryPostProcessorForSpring +
o.a.i.core.config.beans.IsisBeanTypeRegistryDefault +
o.a.i.core.config.converters.PatternsConverter +
o.a.i.core.config.datasources.DataSourceIntrospectionService +
o.a.i.core.config.environment.IsisLocaleInitializer +
o.a.i.core.config.environment.IsisSystemEnvironment +
o.a.i.core.config.environment.IsisTimeZoneInitializer +
o.a.i.core.config.validators.PatternOptionalStringConstraintValidator +
o.a.i.core.config.viewer.wicket.WebAppContextPath +
****

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.hibernate.validator:hibernate-validator:jar:<managed> +
org.springframework.boot:spring-boot-configuration-processor:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/config/datasources/DataSourceIntrospectionService.adoc[DataSourceIntrospectionService]
****

|Apache Isis Core - Interaction
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-interaction
Type: jar
Directory: /core/interaction
----
|Provides _Interaction Scope_.
Top level action execution or property changes are wrapped in an _Interaction_.
That typically corresponds to a http request/response cycle or a JUnit test method execution.

.Components
****
o.a.i.core.interaction.integration.InteractionAwareTransactionalBoundaryHandler +
o.a.i.core.interaction.scope.InteractionScopeBeanFactoryPostProcessor +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/interaction/session/InteractionFactory.adoc[InteractionFactory]
****

|Apache Isis Core - Unit Test Support
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-internaltestsupport
Type: jar
Directory: /core/internaltestsupport
----
|Support for writing unit tests in either JUnit 4 or JUnit 5; should be added as a dependency with scope=test only

.Dependencies
****
net.bytebuddy:byte-buddy:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-core-codegen-bytebuddy:jar:<managed> +
org.assertj:assertj-core:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
org.hamcrest:hamcrest-library:jar:<managed> +
org.jmock:jmock:jar:<managed> +
org.jmock:jmock-junit4:jar:<managed> +
org.junit.jupiter:junit-jupiter-api:jar:<managed> +
org.junit.jupiter:junit-jupiter-engine:jar:<managed> +
org.junit.vintage:junit-vintage-engine:jar:<managed> +
org.mockito:mockito-core:jar:<managed> +
org.picocontainer:picocontainer:jar:<managed> +
org.slf4j:slf4j-api:jar:${slf4j-api.version} +
org.springframework:spring-test:jar:<managed> +
org.springframework.boot:spring-boot-starter-test:jar:<managed> +
****

|Apache Isis Core - MetaModel
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-metamodel
Type: jar
Directory: /core/metamodel
----
|.Components
****
o.a.i.core.metamodel.facets.schema.IsisSchemaMetaModelRefiner +
o.a.i.core.metamodel.facets.schema.IsisSchemaValueTypeProvider +
o.a.i.core.metamodel.objectmanager.ObjectManagerDefault +
o.a.i.core.metamodel.progmodel.ProgrammingModelInitFilterDefault +
o.a.i.core.metamodel.services.ServiceInjectorDefault +
o.a.i.core.metamodel.services.appfeat.ApplicationFeatureRepositoryDefault +
o.a.i.core.metamodel.services.classsubstitutor.ClassSubstitutorDefault +
o.a.i.core.metamodel.services.classsubstitutor.ClassSubstitutorForCollections +
o.a.i.core.metamodel.services.classsubstitutor.ClassSubstitutorForDomainObjects +
o.a.i.core.metamodel.services.classsubstitutor.ClassSubstitutorRegistry +
o.a.i.core.metamodel.services.events.MetamodelEventService +
o.a.i.core.metamodel.services.exceprecog.ExceptionRecognizerForRecoverableException +
o.a.i.core.metamodel.services.grid.GridLoaderServiceDefault +
o.a.i.core.metamodel.services.grid.GridReaderUsingJaxb +
o.a.i.core.metamodel.services.grid.GridServiceDefault +
o.a.i.core.metamodel.services.grid.bootstrap3.GridSystemServiceBS3 +
o.a.i.core.metamodel.services.layout.LayoutServiceDefault +
o.a.i.core.metamodel.services.metamodel.MetaModelServiceDefault +
o.a.i.core.metamodel.services.registry.ServiceRegistryDefault +
o.a.i.core.metamodel.services.tablecol.TableColumnOrderServiceDefault +
o.a.i.core.metamodel.services.title.TitleServiceDefault +
o.a.i.core.metamodel.specloader.InjectorMethodEvaluatorDefault +
o.a.i.core.metamodel.specloader.ProgrammingModelServiceDefault +
o.a.i.core.metamodel.specloader.SpecificationLoaderDefault +
o.a.i.core.metamodel.valuetypes.ValueTypeProviderDefault +
o.a.i.core.metamodel.valuetypes.ValueTypeProviderForBuiltin +
o.a.i.core.metamodel.valuetypes.ValueTypeProviderForCollections +
o.a.i.core.metamodel.valuetypes.ValueTypeRegistry +
****

.Dependencies
****
io.swagger:swagger-core:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-config:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-security:jar:<managed> +
org.hibernate.validator:hibernate-validator:jar:<managed> +
org.jmock:jmock:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/metamodel/services/command/CommandDtoFactory.adoc[CommandDtoFactory], xref:refguide:core:index/metamodel/services/ixn/InteractionDtoFactory.adoc[InteractionDtoFactory], xref:refguide:core:index/metamodel/services/publishing/CommandPublisher.adoc[CommandPublisher], xref:refguide:core:index/metamodel/services/publishing/ExecutionPublisher.adoc[ExecutionPublisher]
****

|Apache Isis Core - Runtime
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-runtime
Type: jar
Directory: /core/runtime
----
|Bundles framework internal services, utilities and events.

.Components
****
o.a.i.core.runtime.events.MetamodelEventService +
o.a.i.core.runtime.events.TransactionEventEmitter +
****

.Dependencies
****
org.apache.isis.core:isis-core-interaction:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.core:isis-core-transaction:jar:<managed> +
****

|Apache Isis Core - Runtime Services
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-runtimeservices
Type: jar
Directory: /core/runtimeservices
----
|Introduced to keep the 'runtime' package concise. Viewers don't have dependencies on this module.

.Components
****
o.a.i.core.runtimeservices.bookmarks.BookmarkServiceDefault +
o.a.i.core.runtimeservices.clock.ClockServiceDefault +
o.a.i.core.runtimeservices.command.CommandDtoFactoryDefault +
o.a.i.core.runtimeservices.command.CommandExecutorServiceDefault +
o.a.i.core.runtimeservices.confmenu.ConfigurationViewServiceDefault +
o.a.i.core.runtimeservices.email.EmailServiceDefault +
o.a.i.core.runtimeservices.eventbus.EventBusServiceSpring +
o.a.i.core.runtimeservices.executor.MemberExecutorServiceDefault +
o.a.i.core.runtimeservices.factory.FactoryServiceDefault +
o.a.i.core.runtimeservices.homepage.HomePageResolverServiceDefault +
o.a.i.core.runtimeservices.i18n.po.TranslationServicePo +
o.a.i.core.runtimeservices.interaction.InteractionDtoFactoryDefault +
o.a.i.core.runtimeservices.jaxb.JaxbServiceDefault +
o.a.i.core.runtimeservices.menubars.MenuBarsLoaderServiceDefault +
o.a.i.core.runtimeservices.menubars.bootstrap3.MenuBarsServiceBS3 +
o.a.i.core.runtimeservices.message.MessageServiceDefault +
o.a.i.core.runtimeservices.publish.CommandPublisherDefault +
o.a.i.core.runtimeservices.publish.EntityChangesPublisherDefault +
o.a.i.core.runtimeservices.publish.EntityPropertyChangePublisherDefault +
o.a.i.core.runtimeservices.publish.ExecutionPublisherDefault +
o.a.i.core.runtimeservices.queryresultscache.QueryResultsCacheDefault +
o.a.i.core.runtimeservices.recognizer.ExceptionRecognizerServiceDefault +
o.a.i.core.runtimeservices.recognizer.dae.ExceptionRecognizerForDataAccessException +
o.a.i.core.runtimeservices.repository.RepositoryServiceDefault +
o.a.i.core.runtimeservices.routing.RoutingServiceDefault +
o.a.i.core.runtimeservices.scratchpad.ScratchpadDefault +
o.a.i.core.runtimeservices.session.InteractionFactoryDefault +
o.a.i.core.runtimeservices.sudo.SudoServiceDefault +
o.a.i.core.runtimeservices.transaction.TransactionServiceSpring +
o.a.i.core.runtimeservices.urlencoding.UrlEncodingServiceWithCompression +
o.a.i.core.runtimeservices.user.UserServiceDefault +
o.a.i.core.runtimeservices.userprof.UserProfileServiceDefault +
o.a.i.core.runtimeservices.userreg.EmailNotificationServiceDefault +
o.a.i.core.runtimeservices.wrapper.WrapperFactoryDefault +
o.a.i.core.runtimeservices.xml.XmlServiceDefault +
o.a.i.core.runtimeservices.xmlsnapshot.XmlSnapshotServiceDefault +
****

.Dependencies
****
org.apache.isis.core:isis-core-codegen-bytebuddy:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.hsqldb:hsqldb:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/runtimeservices/transaction/TransactionServiceSpring.adoc[TransactionServiceSpring], xref:refguide:core:index/runtimeservices/xml/XmlServiceDefault.adoc[XmlServiceDefault]
****

|Apache Isis Core - Security
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-security
Type: jar
Directory: /core/security
----
|.Components
****
o.a.i.core.security.authentication.manager.AuthenticationManager +
o.a.i.core.security.authentication.standard.RandomCodeGeneratorDefault +
o.a.i.core.security.authorization.manager.AuthorizationManager +
****

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-config:jar:<managed> +
org.hamcrest:hamcrest-library:jar:<managed> +
org.junit.jupiter:junit-jupiter-api:jar:<managed> +
org.junit.jupiter:junit-jupiter-engine:jar:<managed> +
org.junit.vintage:junit-vintage-engine:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/security/authentication/Authentication.adoc[Authentication], xref:refguide:core:index/security/authentication/AuthenticationRequest.adoc[AuthenticationRequest], xref:refguide:core:index/security/authentication/Authenticator.adoc[Authenticator], xref:refguide:core:index/security/authorization/Authorizor.adoc[Authorizor]
****

|Apache Isis Core - Transaction
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-transaction
Type: jar
Directory: /core/transaction
----
|Provides transaction integration with Spring and also
entity change tracking, with associated publishing and pre/post value events.

.Components
****
o.a.i.core.transaction.changetracking.EntityChangeTrackerDefault +
o.a.i.core.transaction.changetracking.events.TimestampService +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/transaction/changetracking/EntityChangeTracker.adoc[EntityChangeTracker], xref:refguide:core:index/transaction/changetracking/EntityChangeTrackerDefault.adoc[EntityChangeTrackerDefault], xref:refguide:core:index/transaction/changetracking/EntityChangesPublisher.adoc[EntityChangesPublisher], xref:refguide:core:index/transaction/changetracking/EntityPropertyChangePublisher.adoc[EntityPropertyChangePublisher], xref:refguide:core:index/transaction/events/TransactionAfterCompletionEvent.adoc[TransactionAfterCompletionEvent]
****

|Apache Isis Core - WebApp
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-core-webapp
Type: jar
Directory: /core/webapp
----
|Bundles all the web specific classes a srequired by viewers.
Introduced to keep the 'runtime' package concise.

.Components
****
o.a.i.core.webapp.health.HealthIndicatorUsingHealthCheckService +
o.a.i.core.webapp.modules.logonlog.WebModuleLogOnExceptionLogger +
o.a.i.core.webapp.modules.templresources.WebModuleTemplateResources +
o.a.i.core.webapp.webappctx.IsisWebAppContextInitializer +
****

.Dependencies
****
org.apache.isis.core:isis-core-interaction:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.core:isis-core-transaction:jar:<managed> +
org.springframework:spring-web:jar:<managed> +
org.springframework.boot:spring-boot:jar:<managed> +
org.springframework.boot:spring-boot-actuator:jar:<managed> +
org.springframework.boot:spring-boot-starter-thymeleaf:jar:<managed> +
****

|Apache Isis - JDK Supplemental
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-jdk-supplemental
Type: pom
Directory: /core/jdk-supplemental
----
|Defines a module to bring in dependencies that were part of JDK 8 but
had been removed with later JDK versions.

Will be removed once the framework migrates to Java 11 as the required
minimum version.

.Dependencies
****
com.fasterxml.woodstox:woodstox-core:jar:<managed> +
com.sun.xml.bind:jaxb-core:jar:<managed> +
com.sun.xml.bind:jaxb-impl:jar:<managed> +
com.sun.xml.ws:jaxws-ri:pom:<managed> +
com.sun.xml.ws:jaxws-rt:jar:${jaxws-ri.version} +
javax.xml.bind:jaxb-api:jar:<managed> +
org.codehaus.woodstox:stax2-api:jar:<managed> +
org.eclipse.persistence:org.eclipse.persistence.moxy:jar:<managed> +
org.eclipse.persistence:org.eclipse.persistence.sdo:jar:<managed> +
****

|Apache Isis Core - Schemas
[source,yaml]
----
Group: org.apache.isis.core
Artifact: isis-schema
Type: jar
Directory: /api/schema
----
|Apache Isis schemas, for conversion into canonical DTOs (for use in integration scenarios).

.Dependencies
****
joda-time:joda-time:jar:<managed> +
org.springframework:spring-context:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:schema:index/IsisModuleSchema.adoc[IsisModuleSchema]
****
|===

== Persistence

=== JDO

[plantuml,JDO,svg]
----
@startuml(id=JDO)
title JDO - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "JDO\n[Software System]" {
  rectangle "==Apache Isis Persistence - JDO\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Persistence - JDO (Spring)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
  rectangle "==Apache Isis Persistence - JDO (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Persistence - JDO (integration)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Persistence - JDO (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Persistence - JDO (provider)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
  rectangle "==Apache Isis Persistence - JDO Provider (DataNucleus)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
}
2 .[#707070].> 8 : ""
2 .[#707070].> 3 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 7 : ""
2 .[#707070].> 4 : ""
@enduml
----
.Projects/Modules (JDO)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Persistence - JDO
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jdo
Type: pom
Directory: /persistence/jdo
----
|Supplementary applib for JDO persistence

|Apache Isis Persistence - JDO (applib)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jdo-applib
Type: jar
Directory: /persistence/jdo/applib
----
|Supplementary applib for JDO persistence

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.datanucleus:datanucleus-rdbms:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:persistence:index/jdo/applib/IsisModulePersistenceJdoApplib.adoc[IsisModulePersistenceJdoApplib], xref:refguide:persistence:index/jdo/applib/services/JdoSupportService.adoc[JdoSupportService]
****

|Apache Isis Persistence - JDO Provider (DataNucleus)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jdo-datanucleus
Type: jar
Directory: /persistence/jdo/datanucleus
----
|JDO Implementation (powered by DataNucleus)

.Components
****
o.a.i.persistence.jdo.datanucleus.config.DnEntityDiscoveryListener +
o.a.i.persistence.jdo.datanucleus.entities.DnEntityStateProvider +
o.a.i.persistence.jdo.datanucleus.jdosupport.JdoSupportServiceDefault +
o.a.i.persistence.jdo.datanucleus.metamodel.JdoDataNucleusProgrammingModel +
****

.Dependencies
****
com.h2database:h2:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-integration:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-provider:jar:<managed> +
org.datanucleus:datanucleus-api-jdo:jar:<managed> +
org.datanucleus:datanucleus-core:jar:<managed> +
org.datanucleus:datanucleus-jdo-query:jar:<managed> +
org.datanucleus:datanucleus-jodatime:jar:<managed> +
org.datanucleus:datanucleus-rdbms:jar:<managed> +
org.springframework.boot:spring-boot-starter-jdbc:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:persistence:index/jdo/datanucleus/IsisModuleJdoDatanucleus.adoc[IsisModuleJdoDatanucleus], xref:refguide:persistence:index/jdo/datanucleus/changetracking/JdoLifecycleListener.adoc[JdoLifecycleListener], xref:refguide:persistence:index/jdo/datanucleus/dialect/DnJdoDialect.adoc[DnJdoDialect], xref:refguide:persistence:index/jdo/datanucleus/mixins/Persistable_datanucleusIdLong.adoc[Persistable_datanucleusIdLong], xref:refguide:persistence:index/jdo/datanucleus/mixins/Persistable_datanucleusVersionLong.adoc[Persistable_datanucleusVersionLong], xref:refguide:persistence:index/jdo/datanucleus/mixins/Persistable_datanucleusVersionTimestamp.adoc[Persistable_datanucleusVersionTimestamp], xref:refguide:persistence:index/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.adoc[Persistable_downloadJdoMetadata], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/applib/IsisBookmarkConverter.adoc[IsisBookmarkConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/applib/IsisLocalResourcePathConverter.adoc[IsisLocalResourcePathConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/applib/IsisMarkupConverter.adoc[IsisMarkupConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/applib/IsisPasswordConverter.adoc[IsisPasswordConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/image/JavaAwtBufferedImageByteArrayConverter.adoc[JavaAwtBufferedImageByteArrayConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/schema/v2/IsisChangesDtoConverter.adoc[IsisChangesDtoConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/schema/v2/IsisCommandDtoConverter.adoc[IsisCommandDtoConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/schema/v2/IsisInteractionDtoConverter.adoc[IsisInteractionDtoConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/schema/v2/IsisOidDtoConverter.adoc[IsisOidDtoConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/time/IsoOffsetTimeConverter.adoc[IsoOffsetTimeConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/time/IsoZonedDateTimeConverter.adoc[IsoZonedDateTimeConverter], xref:refguide:persistence:index/jdo/datanucleus/valuemappings/applib/ByteArrayBlobRdbmsMapping.adoc[ByteArrayBlobRdbmsMapping], xref:refguide:persistence:index/jdo/datanucleus/valuetypes/applib/IsisBlobMapping.adoc[IsisBlobMapping], xref:refguide:persistence:index/jdo/datanucleus/valuetypes/applib/IsisClobMapping.adoc[IsisClobMapping]
****

|Apache Isis Persistence - JDO (integration)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jdo-integration
Type: jar
Directory: /persistence/jdo/integration
----
|JDO Integration (powered by DataNucleus)

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-metamodel:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-spring:jar:<managed> +
****

|Apache Isis Persistence - JDO (metamodel)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jdo-metamodel
Type: jar
Directory: /persistence/jdo/metamodel
----
|JDO Metamodel Facets / Programming Model

.Components
****
o.a.i.persistence.jdo.metamodel.JdoProgrammingModel +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-provider:jar:<managed> +
****

|Apache Isis Persistence - JDO (provider)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jdo-provider
Type: jar
Directory: /persistence/jdo/provider
----
|JDO Provider to be implemented by any actual JDO provider eg. DataNucleus.

.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
****

|Apache Isis Persistence - JDO (Spring)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jdo-spring
Type: jar
Directory: /persistence/jdo/spring
----
|JDO Spring integration.

This is a fork of the Spring ORM JDO sources at github,
for which support had been dropped back in 2016 [1].

Credits to the original authors. See also docs [2].

[1] https://github.com/spring-projects/spring-framework/issues/18702
[2] https://docs.spring.io/spring-framework/docs/3.0.0.RC2/reference/html/ch13s04.html

.Dependencies
****
javax.servlet:javax.servlet-api:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-config:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-provider:jar:<managed> +
org.springframework:spring-jdbc:jar:<managed> +
org.springframework:spring-web:jar:<managed> +
****
|===

=== JPA

[plantuml,JPA,svg]
----
@startuml(id=JPA)
title JPA - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "JPA\n[Software System]" {
  rectangle "==Apache Isis Persistence - JPA\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Persistence - JPA (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Persistence - JPA (integration)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Persistence - JPA (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Persistence - JPA EclipseLink\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
}
2 .[#707070].> 3 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 4 : ""
@enduml
----
.Projects/Modules (JPA)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Persistence - JPA
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jpa
Type: pom
Directory: /persistence/jpa
----
|Apache Isis JPA integration

|Apache Isis Persistence - JPA (applib)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jpa-applib
Type: jar
Directory: /persistence/jpa/applib
----
|Supplementary applib for JPA persistence

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:persistence:index/jpa/applib/integration/JpaEntityInjectionPointResolver.adoc[JpaEntityInjectionPointResolver], xref:refguide:persistence:index/jpa/applib/services/JpaSupportService.adoc[JpaSupportService]
****

|Apache Isis Persistence - JPA EclipseLink
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jpa-eclipselink
Type: jar
Directory: /persistence/jpa/eclipselink
----
|EclipseLink integration. Sets up EclipseLink as the implementation provider for Spring Data JPA.

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jpa-integration:jar:<managed> +
org.eclipse.persistence:org.eclipse.persistence.jpa:jar:2.7.8 +
org.springframework.boot:spring-boot-starter-data-jpa:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:persistence:index/jpa/eclipselink/IsisModuleJpaEclipselink.adoc[IsisModuleJpaEclipselink]
****

|Apache Isis Persistence - JPA (integration)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jpa-integration
Type: jar
Directory: /persistence/jpa/integration
----
|JPA integration (facets, jpa-context)

.Components
****
o.a.i.persistence.jpa.integration.metamodel.JpaProgrammingModel +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jpa-metamodel:jar:<managed> +
org.springframework.data:spring-data-jpa:jar:<managed> +
****

|Apache Isis Persistence - JPA (metamodel)
[source,yaml]
----
Group: org.apache.isis.persistence
Artifact: isis-persistence-jpa-metamodel
Type: jar
Directory: /persistence/jpa/metamodel
----
|JPA Metamodel Facets / Programming Model

.Components
****
o.a.i.persistence.jpa.metamodel.JpaProgrammingModel +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed> +
****
|===

== Security

[plantuml,Security,svg]
----
@startuml(id=Security)
title Security - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Security\n[Software System]" {
  rectangle "==Apache Isis Security - Spring\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Security)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Security - Spring
[source,yaml]
----
Group: org.apache.isis.security
Artifact: isis-security-spring
Type: jar
Directory: /security/spring
----
|Authentication using Spring Security

.Components
****
o.a.i.security.spring.authentication.AuthenticatorSpring +
o.a.i.security.spring.webmodule.WebModuleSpringSecurity +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.springframework.boot:spring-boot-starter-security:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:security:index/spring/IsisModuleSecuritySpring.adoc[IsisModuleSecuritySpring], xref:refguide:security:index/spring/authentication/AuthenticatorSpring.adoc[AuthenticatorSpring], xref:refguide:security:index/spring/webmodule/SpringSecurityFilter.adoc[SpringSecurityFilter], xref:refguide:security:index/spring/webmodule/WebModuleSpringSecurity.adoc[WebModuleSpringSecurity]
****
|===

=== Bypass

[plantuml,Bypass,svg]
----
@startuml(id=Bypass)
title Bypass - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Bypass\n[Software System]" {
  rectangle "==Apache Isis Security - Bypass\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Bypass)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Security - Bypass
[source,yaml]
----
Group: org.apache.isis.security
Artifact: isis-security-bypass
Type: jar
Directory: /security/bypass
----
|.Components
****
o.a.i.security.bypass.authentication.AuthenticatorBypass +
o.a.i.security.bypass.authorization.AuthorizorBypass +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:security:index/bypass/IsisModuleSecurityBypass.adoc[IsisModuleSecurityBypass], xref:refguide:security:index/bypass/authentication/AuthenticatorBypass.adoc[AuthenticatorBypass], xref:refguide:security:index/bypass/authorization/AuthorizorBypass.adoc[AuthorizorBypass]
****
|===

=== Keycloak

[plantuml,Keycloak,svg]
----
@startuml(id=Keycloak)
title Keycloak - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Keycloak\n[Software System]" {
  rectangle "==Apache Isis Security - Keycloak\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Keycloak)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Security - Keycloak
[source,yaml]
----
Group: org.apache.isis.security
Artifact: isis-security-keycloak
Type: jar
Directory: /security/keycloak
----
|Authentication and Authorization using Keycloak

.Components
****
o.a.i.security.keycloak.authentication.AuthenticatorKeycloak +
o.a.i.security.keycloak.webmodule.WebModuleKeycloak +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:security:index/keycloak/IsisModuleSecurityKeycloak.adoc[IsisModuleSecurityKeycloak], xref:refguide:security:index/keycloak/authentication/AuthenticatorKeycloak.adoc[AuthenticatorKeycloak], xref:refguide:security:index/keycloak/webmodule/KeycloakFilter.adoc[KeycloakFilter], xref:refguide:security:index/keycloak/webmodule/WebModuleKeycloak.adoc[WebModuleKeycloak]
****
|===

=== Shiro

[plantuml,Shiro,svg]
----
@startuml(id=Shiro)
title Shiro - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Shiro\n[Software System]" {
  rectangle "==Apache Isis Security - Shiro\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Shiro)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Security - Shiro
[source,yaml]
----
Group: org.apache.isis.security
Artifact: isis-security-shiro
Type: jar
Directory: /security/shiro
----
|Authentication and Authorization using Apache Shiro.

.Components
****
o.a.i.security.shiro.authentication.AuthenticatorShiro +
o.a.i.security.shiro.authorization.AuthorizorShiro +
o.a.i.security.shiro.webmodule.WebModuleShiro +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.apache.shiro:shiro-core:jar:<managed> +
org.apache.shiro:shiro-web:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:security:index/shiro/IsisModuleSecurityShiro.adoc[IsisModuleSecurityShiro], xref:refguide:security:index/shiro/authentication/AuthenticatorShiro.adoc[AuthenticatorShiro], xref:refguide:security:index/shiro/authorization/AuthorizorShiro.adoc[AuthorizorShiro], xref:refguide:security:index/shiro/authorization/IsisPermission.adoc[IsisPermission], xref:refguide:security:index/shiro/authorization/IsisPermissionResolver.adoc[IsisPermissionResolver], xref:refguide:security:index/shiro/webmodule/WebModuleShiro.adoc[WebModuleShiro]
****
|===

== Viewer

[plantuml,Viewer,svg]
----
@startuml(id=Viewer)
title Viewer - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Viewer\n[Software System]" {
  rectangle "==Apache Isis Viewer - Common Model\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Viewer)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Viewer - Common Model
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-common
Type: jar
Directory: /viewers/common
----
|.Components
****
o.a.i.viewer.common.model.branding.BrandingUiModelProvider +
o.a.i.viewer.common.model.header.HeaderUiModelProvider +
o.a.i.viewer.common.model.menu.MenuUiModelProvider +
o.a.i.viewer.common.model.userprofile.UserProfileUiModelProvider +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.webjars:font-awesome:jar:5.15.2 +
****
|===

=== Restful Objects

[plantuml,Restful Objects,svg]
----
@startuml(id=Restful_Objects)
title Restful Objects - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Restful Objects\n[Software System]" {
  rectangle "==Apache Isis Viewer - RO\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Viewer - RO (AppLib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Viewer - RO (JAX-RS Resteasy v4)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Viewer - RO (Rendering)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Viewer - RO (Testing)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Viewer - RO (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 7 : ""
@enduml
----
.Projects/Modules (Restful Objects)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Viewer - RO
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-restfulobjects
Type: pom
Directory: /viewers/restfulobjects
----
|

|Apache Isis Viewer - RO (AppLib)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-restfulobjects-applib
Type: jar
Directory: /viewers/restfulobjects/applib
----
|.Dependencies
****
com.fasterxml.jackson.core:jackson-databind:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/restfulobjects/applib/IsisModuleViewerRestfulObjectsApplib.adoc[IsisModuleViewerRestfulObjectsApplib], xref:refguide:viewer:index/restfulobjects/applib/JsonRepresentation.adoc[JsonRepresentation], xref:refguide:viewer:index/restfulobjects/applib/LinkRepresentation.adoc[LinkRepresentation], xref:refguide:viewer:index/restfulobjects/applib/Rel.adoc[Rel], xref:refguide:viewer:index/restfulobjects/applib/RelDefinition.adoc[RelDefinition], xref:refguide:viewer:index/restfulobjects/applib/RepresentationType.adoc[RepresentationType], xref:refguide:viewer:index/restfulobjects/applib/RestfulHttpMethod.adoc[RestfulHttpMethod], xref:refguide:viewer:index/restfulobjects/applib/RestfulMediaType.adoc[RestfulMediaType], xref:refguide:viewer:index/restfulobjects/applib/RestfulRequest.adoc[RestfulRequest], xref:refguide:viewer:index/restfulobjects/applib/RestfulResponse.adoc[RestfulResponse], xref:refguide:viewer:index/restfulobjects/applib/boot/BootstrapResource.adoc[BootstrapResource], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/AbstractObjectMemberRepresentation.adoc[AbstractObjectMemberRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ActionResultRepresentation.adoc[ActionResultRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainObjectMemberRepresentation.adoc[DomainObjectMemberRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainObjectRepresentation.adoc[DomainObjectRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainObjectResource.adoc[DomainObjectResource], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainRepresentation.adoc[DomainRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/DomainServiceResource.adoc[DomainServiceResource], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ListRepresentation.adoc[ListRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ObjectActionRepresentation.adoc[ObjectActionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ObjectCollectionRepresentation.adoc[ObjectCollectionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ObjectPropertyRepresentation.adoc[ObjectPropertyRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domainobjects/ScalarValueRepresentation.adoc[ScalarValueRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/AbstractTypeMemberRepresentation.adoc[AbstractTypeMemberRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/ActionDescriptionRepresentation.adoc[ActionDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/ActionParameterDescriptionRepresentation.adoc[ActionParameterDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/CollectionDescriptionRepresentation.adoc[CollectionDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/DomainTypeRepresentation.adoc[DomainTypeRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/DomainTypeResource.adoc[DomainTypeResource], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/PropertyDescriptionRepresentation.adoc[PropertyDescriptionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/TypeActionResultRepresentation.adoc[TypeActionResultRepresentation], xref:refguide:viewer:index/restfulobjects/applib/domaintypes/TypeListRepresentation.adoc[TypeListRepresentation], xref:refguide:viewer:index/restfulobjects/applib/dtos/ScalarValueDtoV2.adoc[ScalarValueDtoV2], xref:refguide:viewer:index/restfulobjects/applib/errors/ErrorRepresentation.adoc[ErrorRepresentation], xref:refguide:viewer:index/restfulobjects/applib/health/HealthRepresentation.adoc[HealthRepresentation], xref:refguide:viewer:index/restfulobjects/applib/health/HealthResource.adoc[HealthResource], xref:refguide:viewer:index/restfulobjects/applib/homepage/HomePageRepresentation.adoc[HomePageRepresentation], xref:refguide:viewer:index/restfulobjects/applib/homepage/HomePageResource.adoc[HomePageResource], xref:refguide:viewer:index/restfulobjects/applib/menubars/MenuBarsResource.adoc[MenuBarsResource], xref:refguide:viewer:index/restfulobjects/applib/user/UserRepresentation.adoc[UserRepresentation], xref:refguide:viewer:index/restfulobjects/applib/user/UserResource.adoc[UserResource], xref:refguide:viewer:index/restfulobjects/applib/util/JsonMapper.adoc[JsonMapper], xref:refguide:viewer:index/restfulobjects/applib/util/JsonNodeUtils.adoc[JsonNodeUtils], xref:refguide:viewer:index/restfulobjects/applib/util/MediaTypes.adoc[MediaTypes], xref:refguide:viewer:index/restfulobjects/applib/util/Parser.adoc[Parser], xref:refguide:viewer:index/restfulobjects/applib/util/PathNode.adoc[PathNode], xref:refguide:viewer:index/restfulobjects/applib/util/UrlEncodingUtils.adoc[UrlEncodingUtils], xref:refguide:viewer:index/restfulobjects/applib/version/VersionRepresentation.adoc[VersionRepresentation], xref:refguide:viewer:index/restfulobjects/applib/version/VersionResource.adoc[VersionResource]
****

|Apache Isis Viewer - RO (JAX-RS Resteasy v4)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-restfulobjects-jaxrsresteasy4
Type: jar
Directory: /viewers/restfulobjects/jaxrs-resteasy-4
----
|JAX-RS plugin using jboss resteasy.

.Components
****
o.a.i.viewer.restfulobjects.jaxrsresteasy4.conneg.RestfulObjectsJaxbWriterForXml +
o.a.i.viewer.restfulobjects.jaxrsresteasy4.webmodule.WebModuleJaxrsResteasy4 +
****

.Dependencies
****
org.apache.isis.viewer:isis-viewer-restfulobjects-rendering:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-testing:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-viewer:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
org.jboss.resteasy:resteasy-jaxb-provider:jar:<managed> +
org.jboss.resteasy:resteasy-spring-boot-starter:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/restfulobjects/jaxrsresteasy4/IsisModuleViewerRestfulObjectsJaxrsResteasy4.adoc[IsisModuleViewerRestfulObjectsJaxrsResteasy4], xref:refguide:viewer:index/restfulobjects/jaxrsresteasy4/conneg/RestfulObjectsJaxbWriterForXml.adoc[RestfulObjectsJaxbWriterForXml], xref:refguide:viewer:index/restfulobjects/jaxrsresteasy4/webmodule/WebModuleJaxrsResteasy4.adoc[WebModuleJaxrsResteasy4]
****

|Apache Isis Viewer - RO (Rendering)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-restfulobjects-rendering
Type: jar
Directory: /viewers/restfulobjects/rendering
----
|.Components
****
o.a.i.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder +
o.a.i.viewer.restfulobjects.rendering.service.RepresentationService +
o.a.i.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest +
o.a.i.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest$RequestFilter +
o.a.i.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest$ResponseFilter +
o.a.i.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceForRestfulObjectsV1_0 +
o.a.i.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceOrgApacheIsisV1 +
o.a.i.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceOrgApacheIsisV2 +
o.a.i.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceXRoDomainType +
o.a.i.viewer.restfulobjects.rendering.service.swagger.SwaggerServiceDefault +
o.a.i.viewer.restfulobjects.rendering.service.swagger.internal.ClassExcluderDefault +
o.a.i.viewer.restfulobjects.rendering.service.swagger.internal.SwaggerSpecGenerator +
o.a.i.viewer.restfulobjects.rendering.service.swagger.internal.TaggerDefault +
o.a.i.viewer.restfulobjects.rendering.service.swagger.internal.ValuePropertyFactoryDefault +
****

.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/restfulobjects/rendering/IResourceContext.adoc[IResourceContext], xref:refguide:viewer:index/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.adoc[IsisModuleRestfulObjectsRendering], xref:refguide:viewer:index/restfulobjects/rendering/service/RepresentationService.adoc[RepresentationService], xref:refguide:viewer:index/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.adoc[AcceptHeaderServiceForRest], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationService.adoc[ContentNegotiationService], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceAbstract.adoc[ContentNegotiationServiceAbstract], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.adoc[ContentNegotiationServiceForRestfulObjectsV1_0], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.adoc[ContentNegotiationServiceOrgApacheIsisV1], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV2.adoc[ContentNegotiationServiceOrgApacheIsisV2], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.adoc[ContentNegotiationServiceXRoDomainType], xref:refguide:viewer:index/restfulobjects/rendering/service/swagger/SwaggerServiceMenu.adoc[SwaggerServiceMenu]
****

|Apache Isis Viewer - RO (Testing)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-restfulobjects-testing
Type: jar
Directory: /viewers/restfulobjects/testing
----
|.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-viewer:jar:<managed> +
****

|Apache Isis Viewer - RO (Viewer)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-restfulobjects-viewer
Type: jar
Directory: /viewers/restfulobjects/viewer
----
|.Components
****
o.a.i.viewer.restfulobjects.viewer.mappers.ExceptionMapperForObjectNotFound +
o.a.i.viewer.restfulobjects.viewer.mappers.ExceptionMapperForRestfulObjectsApplication +
o.a.i.viewer.restfulobjects.viewer.mappers.ExceptionMapperForRuntimeException +
o.a.i.viewer.restfulobjects.viewer.resources.DomainObjectResourceServerside +
o.a.i.viewer.restfulobjects.viewer.resources.DomainServiceResourceServerside +
o.a.i.viewer.restfulobjects.viewer.resources.DomainTypeResourceServerside +
o.a.i.viewer.restfulobjects.viewer.resources.HomePageResourceServerside +
o.a.i.viewer.restfulobjects.viewer.resources.ImageResourceServerside +
o.a.i.viewer.restfulobjects.viewer.resources.MenuBarsResourceServerside +
o.a.i.viewer.restfulobjects.viewer.resources.SwaggerSpecResource +
o.a.i.viewer.restfulobjects.viewer.resources.UserResourceServerside +
o.a.i.viewer.restfulobjects.viewer.resources.VersionResourceServerside +
****

.Dependencies
****
com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.apache.isis.viewer:isis-viewer-common:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-rendering:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/restfulobjects/viewer/IsisModuleViewerRestfulObjectsViewer.adoc[IsisModuleViewerRestfulObjectsViewer]
****
|===

=== Wicket

[plantuml,Wicket,svg]
----
@startuml(id=Wicket)
title Wicket - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Wicket\n[Software System]" {
  rectangle "==Apache Isis Viewer - Wicket\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Viewer - Wicket (Model)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Viewer - Wicket (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Viewer - Wicket (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
@enduml
----
.Projects/Modules (Wicket)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Viewer - Wicket
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-wicket
Type: pom
Directory: /viewers/wicket
----
|

|Apache Isis Viewer - Wicket (Model)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-wicket-model
Type: jar
Directory: /viewers/wicket/model
----
|.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.apache.isis.viewer:isis-viewer-common:jar:<managed> +
org.apache.wicket:wicket-core:jar:<managed> +
org.apache.wicket:wicket-extensions:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/wicket/model/IsisModuleViewerWicketModel.adoc[IsisModuleViewerWicketModel]
****

|Apache Isis Viewer - Wicket (UI Components)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-wicket-ui
Type: jar
Directory: /viewers/wicket/ui
----
|.Components
****
o.a.i.viewer.wicket.ui.app.logout.LogoutHandlerWkt +
o.a.i.viewer.wicket.ui.components.widgets.themepicker.IsisWicketThemeSupportDefault +
****

.Dependencies
****
com.google.guava:guava:jar:<managed> +
de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed> +
de.agilecoders.wicket:wicket-bootstrap-extensions:jar:<managed> +
de.agilecoders.wicket:wicket-bootstrap-themes:jar:<managed> +
de.agilecoders.wicket.webjars:wicket-webjars:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-model:jar:<managed> +
org.apache.wicket:wicket-auth-roles:jar:<managed> +
org.apache.wicket:wicket-core:jar:<managed> +
org.apache.wicket:wicket-devutils:jar:<managed> +
org.apache.wicket:wicket-extensions:jar:<managed> +
org.apache.wicket:wicket-spring:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
org.slf4j:slf4j-api:jar:${slf4j-api.version} +
org.webjars:jquery-ui:jar:<managed> +
org.webjars:select2:jar:<managed> +
org.webjars.bower:summernote:jar:<managed> +
org.wicketstuff:wicketstuff-select2:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/wicket/ui/IsisModuleViewerWicketUi.adoc[IsisModuleViewerWicketUi]
****

|Apache Isis Viewer - Wicket (Viewer)
[source,yaml]
----
Group: org.apache.isis.viewer
Artifact: isis-viewer-wicket-viewer
Type: jar
Directory: /viewers/wicket/viewer
----
|.Components
****
o.a.i.viewer.wicket.viewer.registries.components.ComponentFactoryRegistrarDefault +
o.a.i.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault +
o.a.i.viewer.wicket.viewer.registries.pages.PageClassListDefault +
o.a.i.viewer.wicket.viewer.registries.pages.PageClassRegistryDefault +
o.a.i.viewer.wicket.viewer.registries.pages.PageNavigationServiceDefault +
o.a.i.viewer.wicket.viewer.services.BookmarkUiServiceWicket +
o.a.i.viewer.wicket.viewer.services.DeepLinkServiceWicket +
o.a.i.viewer.wicket.viewer.services.HintStoreUsingWicketSession +
o.a.i.viewer.wicket.viewer.services.ImageResourceCacheClassPath +
o.a.i.viewer.wicket.viewer.services.LocaleProviderWicket +
o.a.i.viewer.wicket.viewer.services.TranslationsResolverWicket +
o.a.i.viewer.wicket.viewer.services.WicketViewerSettingsDefault +
o.a.i.viewer.wicket.viewer.services.mementos.ObjectMementoServiceWicket +
o.a.i.viewer.wicket.viewer.webmodule.WebModuleWicket +
****

.Dependencies
****
commons-io:commons-io:jar:<managed> +
de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed> +
net.ftlines.wicket-source:wicket-source:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
org.apache.wicket:wicket-auth-roles:jar:<managed> +
org.apache.wicket:wicket-spring:jar:<managed> +
org.jmock:jmock-junit4:jar:<managed> +
org.springframework:spring-web:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/wicket/viewer/IsisModuleViewerWicketViewer.adoc[IsisModuleViewerWicketViewer], xref:refguide:viewer:index/wicket/viewer/mixins/Object_clearHints.adoc[Object_clearHints]
****
|===

== Valuetypes

[plantuml,Valuetypes,svg]
----
@startuml(id=Valuetypes)
title Valuetypes - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Valuetypes\n[Software System]" {
  rectangle "==Apache Isis Val - SSE (ui)\n<size:10>[Container: packaging: pom]</size>" <<6>> as 6
  rectangle "==Apache Isis Val - Server Sent Events\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Val - Server Sent Events (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Val - Server Sent Events (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
  rectangle "==Apache Isis Val - Server Sent Events (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
  rectangle "==Apache Isis Value types\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
6 .[#707070].> 7 : ""
3 .[#707070].> 6 : ""
3 .[#707070].> 4 : ""
3 .[#707070].> 5 : ""
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (Valuetypes)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Value types
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes
Type: pom
Directory: /valuetypes
----
|Value types for use within Apache Isis applications.

.Dependencies
****
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Val - Server Sent Events (parent)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-sse
Type: pom
Directory: /valuetypes/sse
----
|Dynamically updating HTML markup

|Apache Isis Val - Server Sent Events
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-sse-applib
Type: jar
Directory: /valuetypes/sse/applib
----
|.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/sse/applib/IsisModuleValSseApplib.adoc[IsisModuleValSseApplib], xref:refguide:valuetypes:index/sse/applib/annotations/ServerSentEvents.adoc[ServerSentEvents], xref:refguide:valuetypes:index/sse/applib/annotations/SseSource.adoc[SseSource], xref:refguide:valuetypes:index/sse/applib/service/SseChannel.adoc[SseChannel], xref:refguide:valuetypes:index/sse/applib/service/SseService.adoc[SseService]
****

|Apache Isis Val - Server Sent Events (metamodel)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-sse-metamodel
Type: jar
Directory: /valuetypes/sse/metamodel
----
|.Components
****
o.a.i.valuetypes.sse.metamodel.facets.SseAnnotationFacetFactory$Register +
****

.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-sse-applib:jar:<managed> +
****

|Apache Isis Val - SSE (ui)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-sse-ui
Type: pom
Directory: /valuetypes/sse/ui
----
|.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-sse-applib:jar:<managed> +
****

|Apache Isis Val - Server Sent Events (ui wicket)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-sse-ui-wkt
Type: jar
Directory: /valuetypes/sse/ui/wicket
----
|.Components
****
o.a.i.valuetypes.sse.ui.wkt.markup.ListeningMarkupPanelFactoriesForWicket$Parented +
o.a.i.valuetypes.sse.ui.wkt.markup.ListeningMarkupPanelFactoriesForWicket$Standalone +
o.a.i.valuetypes.sse.ui.wkt.services.SseServiceDefault +
o.a.i.valuetypes.sse.ui.wkt.webmodule.WebModuleServerSentEvents +
****

.Dependencies
****
org.apache.isis.valuetypes:isis-valuetypes-sse-metamodel:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/sse/ui/wkt/IsisModuleValSseUiWkt.adoc[IsisModuleValSseUiWkt], xref:refguide:valuetypes:index/sse/ui/wkt/services/SseServiceDefault.adoc[SseServiceDefault], xref:refguide:valuetypes:index/sse/ui/wkt/webmodule/WebModuleServerSentEvents.adoc[WebModuleServerSentEvents]
****
|===

=== Asciidoc

[plantuml,Asciidoc,svg]
----
@startuml(id=Asciidoc)
title Asciidoc - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<9>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Asciidoc\n[Software System]" {
  rectangle "==Apache Isis Val - Asciidoctor (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Val - Asciidoctor (Persistence)\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
  rectangle "==Apache Isis Val - Asciidoctor (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Val - Asciidoctor (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Val - Asciidoctor (persistence jdo DN5)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Val - Asciidoctor (ui vaadin)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
  rectangle "==Apache Isis Val - Asciidoctor (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<9>> as 9
  rectangle "==Apache Isis Val - Asciidoctor (ui)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
}
5 .[#707070].> 6 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 3 : ""
2 .[#707070].> 7 : ""
7 .[#707070].> 9 : ""
@enduml
----
.Projects/Modules (Asciidoc)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Val - Asciidoctor (parent)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc
Type: pom
Directory: /valuetypes/asciidoc
----
|Asciidoc value type.

|Apache Isis Val - Asciidoctor (applib)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc-applib
Type: jar
Directory: /valuetypes/asciidoc/applib
----
|.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.asciidoctor:asciidoctorj-api:jar:${asciidoctorj.version} +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/asciidoc/applib/IsisModuleValAsciidocApplib.adoc[IsisModuleValAsciidocApplib], xref:refguide:valuetypes:index/asciidoc/applib/jaxb/AsciiDocJaxbAdapter.adoc[AsciiDocJaxbAdapter], xref:refguide:valuetypes:index/asciidoc/applib/value/AsciiDoc.adoc[AsciiDoc]
****

|Apache Isis Val - Asciidoctor (MetaModel)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc-metamodel
Type: jar
Directory: /valuetypes/asciidoc/metamodel
----
|.Components
****
o.a.i.valuetypes.asciidoc.metamodel.AsciiDocMetaModelRefiner +
o.a.i.valuetypes.asciidoc.metamodel.AsciiDocValueTypeProvider +
****

.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/asciidoc/metamodel/IsisModuleValAsciidocMetaModel.adoc[IsisModuleValAsciidocMetaModel]
****

|Apache Isis Val - Asciidoctor (Persistence)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc-persistence
Type: pom
Directory: /valuetypes/asciidoc/persistence
----
|.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-applib:jar:<managed> +
****

|Apache Isis Val - Asciidoctor (persistence jdo DN5)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc-persistence-jdo-dn5
Type: jar
Directory: /valuetypes/asciidoc/persistence/jdo-dn5
----
|.Dependencies
****
org.datanucleus:datanucleus-core:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/asciidoc/persistence/jdo/dn5/IsisModuleValAsciidocPersistenceJdoDn5.adoc[IsisModuleValAsciidocPersistenceJdoDn5], xref:refguide:valuetypes:index/asciidoc/persistence/jdo/dn5/converters/IsisAsciiDocConverter.adoc[IsisAsciiDocConverter]
****

|Apache Isis Val - Asciidoctor (ui)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc-ui
Type: pom
Directory: /valuetypes/asciidoc/ui
----
|.Dependencies
****
com.github.jnr:jnr-constants:jar:0.10.1 +
com.github.jnr:jnr-enxio:jar:0.32.4 +
com.github.jnr:jnr-posix:jar:3.1.5 +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-asciidoc-applib:jar:<managed> +
org.asciidoctor:asciidoctorj:jar:${asciidoctorj.version} +
****

|Apache Isis Val - Asciidoctor (ui vaadin)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc-ui-vaa
Type: jar
Directory: /valuetypes/asciidoc/ui/vaadin
----
|.Components
****
o.a.i.valuetypes.asciidoc.ui.vaa.components.AsciiDocFieldFactoryVaa +
****

.Dependencies
****
org.apache.isis.incubator.viewer:isis-viewer-vaadin-ui:jar:${project.version} +
****

|Apache Isis Val - Asciidoctor (ui wicket)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-asciidoc-ui-wkt
Type: jar
Directory: /valuetypes/asciidoc/ui/wicket
----
|.Components
****
o.a.i.valuetypes.asciidoc.ui.wkt.components.AsciiDocPanelFactoriesWkt$Parented +
o.a.i.valuetypes.asciidoc.ui.wkt.components.AsciiDocPanelFactoriesWkt$Standalone +
o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.chg.v2.ChangesDtoPanelFactoriesWkt$Parented +
o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.chg.v2.ChangesDtoPanelFactoriesWkt$Standalone +
o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.cmd.v2.CommandDtoPanelFactoriesWkt$Parented +
o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.cmd.v2.CommandDtoPanelFactoriesWkt$Standalone +
o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.ixn.v2.InteractionDtoPanelFactoriesWkt$Parented +
o.a.i.valuetypes.asciidoc.ui.wkt.components.schema.ixn.v2.InteractionDtoPanelFactoriesWkt$Standalone +
****

.Dependencies
****
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.adoc[IsisModuleValAsciidocUiWkt]
****
|===

=== Markdown

[plantuml,Markdown,svg]
----
@startuml(id=Markdown)
title Markdown - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Markdown\n[Software System]" {
  rectangle "==Apache Isis Val - Markdown (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Val - Markdown (Persistence)\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
  rectangle "==Apache Isis Val - Markdown (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Val - Markdown (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Val - Markdown (persistence jdo DN5)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Val - Markdown (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
  rectangle "==Apache Isis Val - Markdown (ui)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
}
5 .[#707070].> 6 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 3 : ""
2 .[#707070].> 7 : ""
7 .[#707070].> 8 : ""
@enduml
----
.Projects/Modules (Markdown)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Val - Markdown (parent)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-markdown
Type: pom
Directory: /valuetypes/markdown
----
|Markdown value type.

|Apache Isis Val - Markdown (applib)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-markdown-applib
Type: jar
Directory: /valuetypes/markdown/applib
----
|.Dependencies
****
com.vladsch.flexmark:flexmark-all:jar:${flexmark.version} +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/markdown/applib/IsisModuleValMarkdownApplib.adoc[IsisModuleValMarkdownApplib], xref:refguide:valuetypes:index/markdown/applib/jaxb/MarkdownJaxbAdapter.adoc[MarkdownJaxbAdapter], xref:refguide:valuetypes:index/markdown/applib/value/Converter.adoc[Converter]
****

|Apache Isis Val - Markdown (MetaModel)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-markdown-metamodel
Type: jar
Directory: /valuetypes/markdown/metamodel
----
|.Components
****
o.a.i.valuetypes.markdown.metamodel.MarkdownMetaModelRefiner +
o.a.i.valuetypes.markdown.metamodel.MarkdownValueTypeProvider +
****

.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/markdown/metamodel/IsisModuleValMarkdownMetaModel.adoc[IsisModuleValMarkdownMetaModel]
****

|Apache Isis Val - Markdown (Persistence)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-markdown-persistence
Type: pom
Directory: /valuetypes/markdown/persistence
----
|.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed> +
****

|Apache Isis Val - Markdown (persistence jdo DN5)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-markdown-persistence-jdo-dn5
Type: jar
Directory: /valuetypes/markdown/persistence/jdo-dn5
----
|.Dependencies
****
org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed> +
org.datanucleus:datanucleus-core:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/markdown/persistence/jdo/dn5/IsisModuleValMarkdownPersistenceJdoDn5.adoc[IsisModuleValMarkdownPersistenceJdoDn5], xref:refguide:valuetypes:index/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.adoc[IsisMarkdownConverter]
****

|Apache Isis Val - Markdown (ui)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-markdown-ui
Type: pom
Directory: /valuetypes/markdown/ui
----
|.Dependencies
****
com.vladsch.flexmark:flexmark-all:jar:${flexmark.version} +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.valuetypes:isis-valuetypes-markdown-applib:jar:<managed> +
org.jsoup:jsoup:jar:<managed> +
****

|Apache Isis Val - Markdown (ui wicket)
[source,yaml]
----
Group: org.apache.isis.valuetypes
Artifact: isis-valuetypes-markdown-ui-wkt
Type: jar
Directory: /valuetypes/markdown/ui/wicket
----
|.Dependencies
****
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/markdown/ui/wkt/IsisModuleValMarkdownUiWkt.adoc[IsisModuleValMarkdownUiWkt]
****
|===

=== SSE

== Mappings

[plantuml,Mappings,svg]
----
@startuml(id=Mappings)
title Mappings - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Mappings\n[Software System]" {
  rectangle "==Apache Isis Mappings\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Mappings)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Mappings
[source,yaml]
----
Group: org.apache.isis.mappings
Artifact: isis-mappings
Type: pom
Directory: /mappings
----
|Libraries and tools to map one bounded context (usually an Apache Isis application) to some other BC (usually
_not_ an Apache Isis application).

.Dependencies
****
org.projectlombok:lombok:jar:<managed> +
****
|===

=== JAX-RS Client Library

[plantuml,JAX-RS Client Library,svg]
----
@startuml(id=JAX-RS_Client_Library)
title JAX-RS Client Library - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "JAX-RS Client Library\n[Software System]" {
  rectangle "==Apache Isis Map - JaxRS Client (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Map - JaxRS Client (impl)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Map - JaxRS Client (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
@enduml
----
.Projects/Modules (JAX-RS Client Library)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Map - JaxRS Client (parent)
[source,yaml]
----
Group: org.apache.isis.mappings
Artifact: isis-mappings-jaxrsclient
Type: pom
Directory: /mappings/jaxrsclient
----
|Integrates JaxRS Client Library

|Apache Isis Map - JaxRS Client (applib)
[source,yaml]
----
Group: org.apache.isis.mappings
Artifact: isis-mappings-jaxrsclient-applib
Type: jar
Directory: /mappings/jaxrsclient/applib
----
|.Dependencies
****
javax:javaee-api:jar:<managed> +
org.springframework:spring-context:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/jaxrsclient/applib/IsisModuleExtJaxRsClientApplib.adoc[IsisModuleExtJaxRsClientApplib], xref:refguide:extensions:index/jaxrsclient/applib/client/JaxRsClient.adoc[JaxRsClient], xref:refguide:extensions:index/jaxrsclient/applib/client/JaxRsResponse.adoc[JaxRsResponse]
****

|Apache Isis Map - JaxRS Client (impl)
[source,yaml]
----
Group: org.apache.isis.mappings
Artifact: isis-mappings-jaxrsclient-impl
Type: jar
Directory: /mappings/jaxrsclient/testlib
----
|.Dependencies
****
org.apache.isis.mappings:isis-mappings-jaxrsclient-applib:jar:<managed> +
****
|===

=== REST Client

[plantuml,REST Client,svg]
----
@startuml(id=REST_Client)
title REST Client - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "REST Client\n[Software System]" {
  rectangle "==Apache Isis Ext - REST Client (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Ext - REST Client (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (REST Client)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Ext - REST Client (parent)
[source,yaml]
----
Group: org.apache.isis.mappings
Artifact: isis-mappings-restclient
Type: pom
Directory: /mappings/restclient
----
|A client for the Restful Objects Viewer

|Apache Isis Ext - REST Client (applib)
[source,yaml]
----
Group: org.apache.isis.mappings
Artifact: isis-mappings-restclient-applib
Type: jar
Directory: /mappings/restclient/applib
----
|A client for the Restful Objects Viewer

.Dependencies
****
org.apache.isis.viewer:isis-viewer-restfulobjects-applib:jar:<managed> +
org.springframework:spring-context:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/restclient/ActionParameterListBuilder.adoc[ActionParameterListBuilder], xref:refguide:extensions:index/restclient/IsisModuleExtRestClient.adoc[IsisModuleExtRestClient], xref:refguide:extensions:index/restclient/ResponseDigest.adoc[ResponseDigest], xref:refguide:extensions:index/restclient/RestfulClient.adoc[RestfulClient], xref:refguide:extensions:index/restclient/RestfulClientConfig.adoc[RestfulClientConfig], xref:refguide:extensions:index/restclient/RestfulClientException.adoc[RestfulClientException], xref:refguide:extensions:index/restclient/auth/BasicAuthFilter.adoc[BasicAuthFilter], xref:refguide:extensions:index/restclient/log/ClientConversationFilter.adoc[ClientConversationFilter], xref:refguide:extensions:index/restclient/log/ClientConversationLogger.adoc[ClientConversationLogger]
****
|===

== Extensions

[plantuml,Extensions,svg]
----
@startuml(id=Extensions)
title Extensions - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<11>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<22>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<12>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<23>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<24>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<13>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<14>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<15>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<16>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<17>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<18>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<19>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<9>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<20>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<21>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<10>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Extensions\n[Software System]" {
  rectangle "==Apache Isis Ext - CORS (impl)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Ext - CORS (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
  rectangle "==Apache Isis Ext - Flyway\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
  rectangle "==Apache Isis Ext - Flyway Impl\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
  rectangle "==Apache Isis Ext - Sec Man\n<size:10>[Container: packaging: pom]</size>" <<16>> as 16
  rectangle "==Apache Isis Ext - Sec Man API\n<size:10>[Container: packaging: jar]</size>" <<17>> as 17
  rectangle "==Apache Isis Ext - Sec Man Encryption (Using jbcrypt)\n<size:10>[Container: packaging: jar]</size>" <<18>> as 18
  rectangle "==Apache Isis Ext - Sec Man Model\n<size:10>[Container: packaging: jar]</size>" <<19>> as 19
  rectangle "==Apache Isis Ext - Sec Man Persistence (Using JDO)\n<size:10>[Container: packaging: jar]</size>" <<20>> as 20
  rectangle "==Apache Isis Ext - Sec Man Persistence (Using JPA)\n<size:10>[Container: packaging: jar]</size>" <<21>> as 21
  rectangle "==Apache Isis Ext - Sec Man Realm (Using Shiro)\n<size:10>[Container: packaging: jar]</size>" <<22>> as 22
  rectangle "==Apache Isis Ext - Security - Shiro LDAP Realm (impl)\n<size:10>[Container: packaging: jar]</size>" <<24>> as 24
  rectangle "==Apache Isis Ext - Security - Shiro LDAP Realm (parent)\n<size:10>[Container: packaging: pom]</size>" <<23>> as 23
  rectangle "==Apache Isis Ext - Wicket Viewer - Excel Download (parent)\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
  rectangle "==Apache Isis Ext - Wicket Viewer - Excel Download (ui)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (applib)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
  rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (parent)\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
  rectangle "==Apache Isis Ext - Wicket Viewer - fullcalendar (ui)\n<size:10>[Container: packaging: jar]</size>" <<11>> as 11
  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (applib)\n<size:10>[Container: packaging: jar]</size>" <<13>> as 13
  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<14>> as 14
  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (parent)\n<size:10>[Container: packaging: pom]</size>" <<12>> as 12
  rectangle "==Apache Isis Ext - Wicket Viewer - pdf.js (ui)\n<size:10>[Container: packaging: jar]</size>" <<15>> as 15
  rectangle "==Apache Isis Extensions\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
3 .[#707070].> 4 : ""
7 .[#707070].> 8 : ""
16 .[#707070].> 17 : ""
16 .[#707070].> 18 : ""
16 .[#707070].> 19 : ""
16 .[#707070].> 20 : ""
16 .[#707070].> 21 : ""
16 .[#707070].> 22 : ""
23 .[#707070].> 24 : ""
5 .[#707070].> 6 : ""
9 .[#707070].> 10 : ""
9 .[#707070].> 11 : ""
12 .[#707070].> 13 : ""
12 .[#707070].> 14 : ""
12 .[#707070].> 15 : ""
2 .[#707070].> 3 : ""
2 .[#707070].> 7 : ""
2 .[#707070].> 16 : ""
2 .[#707070].> 23 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 9 : ""
2 .[#707070].> 12 : ""
@enduml
----
.Projects/Modules (Extensions)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Extensions
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions
Type: pom
Directory: /extensions
----
|Extensions to the Apache Isis framework itself.
These are _not_ intended to be called by the domain logic of an Apache Isis application (see instead org.apache.isis.platform).

.Dependencies
****
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Ext - CORS (parent)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-cors
Type: pom
Directory: /extensions/vro/cors
----
|Implementation of CORS Filter (using ebay filter)

|Apache Isis Ext - CORS (impl)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-cors-impl
Type: jar
Directory: /extensions/vro/cors/impl
----
|.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.springframework:spring-web:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/cors/impl/IsisModuleExtCorsImpl.adoc[IsisModuleExtCorsImpl]
****

|Apache Isis Ext - Wicket Viewer - Excel Download (parent)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-exceldownload
Type: pom
Directory: /extensions/vw/exceldownload
----
|A component for Apache Isis' Wicket viewer, providing an alternative representation of collections to be downloaded as an Excel spreadsheet.

|Apache Isis Ext - Wicket Viewer - Excel Download (ui)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-exceldownload-ui
Type: jar
Directory: /extensions/vw/exceldownload/ui
----
|.Components
****
o.a.i.extensions.viewer.wicket.exceldownload.ui.components.CollectionContentsAsExcelFactory +
****

.Dependencies
****
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
org.apache.poi:poi-ooxml:jar:<managed> +
org.apache.poi:poi-ooxml-schemas:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/viewer/wicket/exceldownload/ui/IsisModuleExtExcelDownloadUi.adoc[IsisModuleExtExcelDownloadUi], xref:refguide:extensions:index/viewer/wicket/exceldownload/ui/components/CollectionContentsAsExcel.adoc[CollectionContentsAsExcel], xref:refguide:extensions:index/viewer/wicket/exceldownload/ui/components/CollectionContentsAsExcelFactory.adoc[CollectionContentsAsExcelFactory]
****

|Apache Isis Ext - Flyway
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-flyway
Type: pom
Directory: /extensions/core/flyway
----
|Integrates Flyway when using any (relational) persistence store

|Apache Isis Ext - Flyway Impl
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-flyway-impl
Type: jar
Directory: /extensions/core/flyway/impl
----
|.Dependencies
****
org.apache.isis.core:isis-core-config:jar:<managed> +
org.flywaydb:flyway-core:jar:<managed> +
org.springframework:spring-context:jar:<managed> +
org.springframework:spring-jdbc:jar:<managed> +
org.springframework.boot:spring-boot-autoconfigure:jar:<managed> +
****

|Apache Isis Ext - Wicket Viewer - fullcalendar (parent)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-fullcalendar
Type: pom
Directory: /extensions/vw/fullcalendar
----
|A component for Apache Isis' Wicket viewer, displaying collections of objects that have a date on a fullcalendar.io (JavaScript widget).

|Apache Isis Ext - Wicket Viewer - fullcalendar (applib)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-fullcalendar-applib
Type: jar
Directory: /extensions/vw/fullcalendar/applib
----
|.Dependencies
****
de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/fullcalendar/applib/CalendarEventable.adoc[CalendarEventable], xref:refguide:extensions:index/fullcalendar/applib/Calendarable.adoc[Calendarable], xref:refguide:extensions:index/fullcalendar/applib/IsisModuleExtFullCalendarApplib.adoc[IsisModuleExtFullCalendarApplib], xref:refguide:extensions:index/fullcalendar/applib/spi/CalendarableDereferencingService.adoc[CalendarableDereferencingService], xref:refguide:extensions:index/fullcalendar/applib/value/CalendarEvent.adoc[CalendarEvent]
****

|Apache Isis Ext - Wicket Viewer - fullcalendar (ui)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-fullcalendar-ui
Type: jar
Directory: /extensions/vw/fullcalendar/ui
----
|.Dependencies
****
net.ftlines.wicket-fullcalendar:wicket-fullcalendar-core:jar:<managed> +
org.apache.isis.extensions:isis-extensions-fullcalendar-applib:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/fullcalendar/ui/component/IsisModuleExtFullCalendarUi.adoc[IsisModuleExtFullCalendarUi]
****

|Apache Isis Ext - Wicket Viewer - pdf.js (parent)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-pdfjs
Type: pom
Directory: /extensions/vw/pdfjs
----
|A component for Apache Isis' Wicket viewer, allowing BLOBs containing PDFs to be rendered in a panel using pdf.js.

|Apache Isis Ext - Wicket Viewer - pdf.js (applib)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-pdfjs-applib
Type: jar
Directory: /extensions/vw/pdfjs/applib
----
|.Dependencies
****
de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/viewer/wicket/pdfjs/applib/annotations/PdfJsViewer.adoc[PdfJsViewer], xref:refguide:extensions:index/viewer/wicket/pdfjs/applib/config/PdfJsConfig.adoc[PdfJsConfig], xref:refguide:extensions:index/viewer/wicket/pdfjs/applib/config/Scale.adoc[Scale], xref:refguide:extensions:index/viewer/wicket/pdfjs/applib/spi/PdfJsViewerAdvisor.adoc[PdfJsViewerAdvisor]
****

|Apache Isis Ext - Wicket Viewer - pdf.js (metamodel)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-pdfjs-metamodel
Type: jar
Directory: /extensions/vw/pdfjs/metamodel
----
|.Components
****
o.a.i.extensions.viewer.wicket.pdfjs.metamodel.facet.PdfJsViewerFacetFromAnnotationFactory$Register +
****

.Dependencies
****
de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed> +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.extensions:isis-extensions-pdfjs-applib:jar:<managed> +
****

|Apache Isis Ext - Wicket Viewer - pdf.js (ui)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-pdfjs-ui
Type: jar
Directory: /extensions/vw/pdfjs/ui
----
|.Components
****
o.a.i.extensions.viewer.wicket.pdfjs.ui.components.PdfJsViewerPanelComponentFactory +
****

.Dependencies
****
org.apache.isis.extensions:isis-extensions-pdfjs-metamodel:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/viewer/wicket/pdfjs/ui/IsisModuleExtPdfjsUi.adoc[IsisModuleExtPdfjsUi]
****

|Apache Isis Ext - Sec Man
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-secman
Type: pom
Directory: /extensions/security/secman
----
|.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.core:isis-core-security:jar:<managed> +
****

|Apache Isis Ext - Sec Man API
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-secman-api
Type: jar
Directory: /extensions/security/secman/api
----
|.Components
****
o.a.i.extensions.secman.api.authorizor.AuthorizorSecman +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/api/IsisModuleExtSecmanApi.adoc[IsisModuleExtSecmanApi], xref:refguide:extensions:index/secman/api/SecmanConfiguration.adoc[SecmanConfiguration], xref:refguide:extensions:index/secman/api/SecurityRealm.adoc[SecurityRealm], xref:refguide:extensions:index/secman/api/SecurityRealmCharacteristic.adoc[SecurityRealmCharacteristic], xref:refguide:extensions:index/secman/api/SecurityRealmService.adoc[SecurityRealmService], xref:refguide:extensions:index/secman/api/authorizor/AuthorizorSecman.adoc[AuthorizorSecman], xref:refguide:extensions:index/secman/api/encryption/PasswordEncryptionService.adoc[PasswordEncryptionService], xref:refguide:extensions:index/secman/api/encryption/PasswordEncryptionServiceNone.adoc[PasswordEncryptionServiceNone], xref:refguide:extensions:index/secman/api/events/UserCreatedEvent.adoc[UserCreatedEvent], xref:refguide:extensions:index/secman/api/permission/ApplicationPermission.adoc[ApplicationPermission], xref:refguide:extensions:index/secman/api/permission/ApplicationPermissionMode.adoc[ApplicationPermissionMode], xref:refguide:extensions:index/secman/api/permission/ApplicationPermissionRepository.adoc[ApplicationPermissionRepository], xref:refguide:extensions:index/secman/api/permission/ApplicationPermissionRule.adoc[ApplicationPermissionRule], xref:refguide:extensions:index/secman/api/permission/ApplicationPermissionValue.adoc[ApplicationPermissionValue], xref:refguide:extensions:index/secman/api/permission/ApplicationPermissionValueSet.adoc[ApplicationPermissionValueSet], xref:refguide:extensions:index/secman/api/permission/PermissionsEvaluationService.adoc[PermissionsEvaluationService], xref:refguide:extensions:index/secman/api/permission/PermissionsEvaluationServiceAbstract.adoc[PermissionsEvaluationServiceAbstract], xref:refguide:extensions:index/secman/api/permission/PermissionsEvaluationServiceAllowBeatsVeto.adoc[PermissionsEvaluationServiceAllowBeatsVeto], xref:refguide:extensions:index/secman/api/permission/PermissionsEvaluationServiceVetoBeatsAllow.adoc[PermissionsEvaluationServiceVetoBeatsAllow], xref:refguide:extensions:index/secman/api/role/ApplicationRole.adoc[ApplicationRole], xref:refguide:extensions:index/secman/api/role/ApplicationRoleRepository.adoc[ApplicationRoleRepository], xref:refguide:extensions:index/secman/api/tenancy/ApplicationTenancy.adoc[ApplicationTenancy], xref:refguide:extensions:index/secman/api/tenancy/ApplicationTenancyEvaluator.adoc[ApplicationTenancyEvaluator], xref:refguide:extensions:index/secman/api/tenancy/ApplicationTenancyRepository.adoc[ApplicationTenancyRepository], xref:refguide:extensions:index/secman/api/tenancy/HasAtPath.adoc[HasAtPath], xref:refguide:extensions:index/secman/api/user/AccountType.adoc[AccountType], xref:refguide:extensions:index/secman/api/user/ApplicationUser.adoc[ApplicationUser], xref:refguide:extensions:index/secman/api/user/ApplicationUserRepository.adoc[ApplicationUserRepository], xref:refguide:extensions:index/secman/api/user/ApplicationUserStatus.adoc[ApplicationUserStatus]
****

|Apache Isis Ext - Sec Man Encryption (Using jbcrypt)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-secman-encryption-jbcrypt
Type: jar
Directory: /extensions/security/secman/encryption-jbcrypt
----
|.Components
****
o.a.i.extensions.secman.encryption.jbcrypt.services.PasswordEncryptionServiceUsingJBcrypt +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed> +
org.mindrot:jbcrypt:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/encryption/jbcrypt/IsisModuleExtSecmanEncryptionJbcrypt.adoc[IsisModuleExtSecmanEncryptionJbcrypt], xref:refguide:extensions:index/secman/encryption/jbcrypt/services/PasswordEncryptionServiceUsingJBcrypt.adoc[PasswordEncryptionServiceUsingJBcrypt]
****

|Apache Isis Ext - Sec Man Model
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-secman-model
Type: jar
Directory: /extensions/security/secman/model
----
|.Components
****
o.a.i.extensions.secman.model.facets.TenantedAuthorizationFacetFactory$Register +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/model/IsisModuleExtSecmanModel.adoc[IsisModuleExtSecmanModel], xref:refguide:extensions:index/secman/model/dom/user/MeService.adoc[MeService]
****

|Apache Isis Ext - Sec Man Persistence (Using JDO)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-secman-persistence-jdo
Type: jar
Directory: /extensions/security/secman/persistence-jdo
----
|.Components
****
o.a.i.extensions.secman.jdo.dom.permission.ApplicationPermissionRepository +
o.a.i.extensions.secman.jdo.dom.role.ApplicationRoleRepository +
o.a.i.extensions.secman.jdo.dom.tenancy.ApplicationTenancyRepository +
o.a.i.extensions.secman.jdo.dom.user.ApplicationUserRepository +
o.a.i.extensions.secman.jdo.seed.SeedSecurityModuleService +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-datanucleus:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/jdo/IsisModuleExtSecmanPersistenceJdo.adoc[IsisModuleExtSecmanPersistenceJdo], xref:refguide:extensions:index/secman/jdo/seed/SeedSecurityModuleService.adoc[SeedSecurityModuleService], xref:refguide:extensions:index/secman/jdo/seed/SeedUsersAndRolesFixtureScript.adoc[SeedUsersAndRolesFixtureScript], xref:refguide:extensions:index/secman/jdo/seed/scripts/GlobalTenancy.adoc[GlobalTenancy], xref:refguide:extensions:index/secman/jdo/seed/scripts/IsisExtFixturesFixtureResultsRoleAndPermissions.adoc[IsisExtFixturesFixtureResultsRoleAndPermissions], xref:refguide:extensions:index/secman/jdo/seed/scripts/IsisExtSecmanAdminRoleAndPermissions.adoc[IsisExtSecmanAdminRoleAndPermissions], xref:refguide:extensions:index/secman/jdo/seed/scripts/IsisExtSecmanAdminUser.adoc[IsisExtSecmanAdminUser], xref:refguide:extensions:index/secman/jdo/seed/scripts/IsisExtSecmanFixtureRoleAndPermissions.adoc[IsisExtSecmanFixtureRoleAndPermissions], xref:refguide:extensions:index/secman/jdo/seed/scripts/IsisExtSecmanRegularUserRoleAndPermissions.adoc[IsisExtSecmanRegularUserRoleAndPermissions]
****

|Apache Isis Ext - Sec Man Persistence (Using JPA)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-secman-persistence-jpa
Type: jar
Directory: /extensions/security/secman/persistence-jpa
----
|.Components
****
o.a.i.extensions.secman.jpa.dom.permission.ApplicationPermissionRepository +
o.a.i.extensions.secman.jpa.dom.role.ApplicationRoleRepository +
o.a.i.extensions.secman.jpa.dom.tenancy.ApplicationTenancyRepository +
o.a.i.extensions.secman.jpa.dom.user.ApplicationUserRepository +
o.a.i.extensions.secman.jpa.seed.SeedSecurityModuleService +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jpa-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/jpa/IsisModuleExtSecmanPersistenceJpa.adoc[IsisModuleExtSecmanPersistenceJpa], xref:refguide:extensions:index/secman/jpa/seed/SeedSecurityModuleService.adoc[SeedSecurityModuleService], xref:refguide:extensions:index/secman/jpa/seed/SeedUsersAndRolesFixtureScript.adoc[SeedUsersAndRolesFixtureScript], xref:refguide:extensions:index/secman/jpa/seed/scripts/GlobalTenancy.adoc[GlobalTenancy], xref:refguide:extensions:index/secman/jpa/seed/scripts/IsisExtFixturesFixtureResultsRoleAndPermissions.adoc[IsisExtFixturesFixtureResultsRoleAndPermissions], xref:refguide:extensions:index/secman/jpa/seed/scripts/IsisExtSecmanAdminRoleAndPermissions.adoc[IsisExtSecmanAdminRoleAndPermissions], xref:refguide:extensions:index/secman/jpa/seed/scripts/IsisExtSecmanAdminUser.adoc[IsisExtSecmanAdminUser], xref:refguide:extensions:index/secman/jpa/seed/scripts/IsisExtSecmanFixtureRoleAndPermissions.adoc[IsisExtSecmanFixtureRoleAndPermissions], xref:refguide:extensions:index/secman/jpa/seed/scripts/IsisExtSecmanRegularUserRoleAndPermissions.adoc[IsisExtSecmanRegularUserRoleAndPermissions], xref:refguide:extensions:index/secman/jpa/userreg/SecurityModuleAppUserRegistrationServiceAbstract.adoc[SecurityModuleAppUserRegistrationServiceAbstract]
****

|Apache Isis Ext - Sec Man Realm (Using Shiro)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-secman-shiro-realm
Type: jar
Directory: /extensions/security/secman/shiro-realm
----
|.Components
****
o.a.i.extensions.secman.shiro.services.SecurityRealmServiceUsingShiro +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-api:jar:2.0.0-SNAPSHOT +
org.apache.isis.security:isis-security-shiro:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/shiro/IsisModuleExtSecmanRealmShiro.adoc[IsisModuleExtSecmanRealmShiro], xref:refguide:extensions:index/secman/shiro/IsisModuleExtSecmanShiroRealm.adoc[IsisModuleExtSecmanShiroRealm], xref:refguide:extensions:index/secman/shiro/services/SecurityRealmServiceUsingShiro.adoc[SecurityRealmServiceUsingShiro], xref:refguide:extensions:index/secman/shiro/util/ShiroUtils.adoc[ShiroUtils]
****

|Apache Isis Ext - Security - Shiro LDAP Realm (parent)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-shiro-realm-ldap
Type: pom
Directory: /extensions/security/shiro-realm-ldap
----
|Implementation of Shiro Realm using LDAP.

|Apache Isis Ext - Security - Shiro LDAP Realm (impl)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-shiro-realm-ldap-impl
Type: jar
Directory: /extensions/security/shiro-realm-ldap/impl
----
|.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.security:isis-security-shiro:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/shirorealmldap/realm/impl/IsisLdapContextFactory.adoc[IsisLdapContextFactory], xref:refguide:extensions:index/shirorealmldap/realm/impl/IsisLdapRealm.adoc[IsisLdapRealm], xref:refguide:extensions:index/shirorealmldap/realm/impl/IsisModuleExtShiroRealmLdapImpl.adoc[IsisModuleExtShiroRealmLdapImpl]
****
|===

=== Core: Command Log

[plantuml,Core: Command Log,svg]
----
@startuml(id=Core:_Command_Log)
title Core: Command Log - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Core: Command Log\n[Software System]" {
  rectangle "==Apache Isis Ext - Command Log\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Ext - Command Log Implementation (JDO)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
}
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (Core: Command Log)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Ext - Command Log
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-command-log
Type: pom
Directory: /extensions/core/command-log
----
|Logs commands

|Apache Isis Ext - Command Log Implementation (JDO)
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-command-log-jdo
Type: jar
Directory: /extensions/core/command-log/impl
----
|.Components
****
o.a.i.extensions.commandlog.impl.CommandSubscriberForJdo +
o.a.i.extensions.commandlog.impl.jdo.CommandJdo$TableColumnOrderDefault +
o.a.i.extensions.commandlog.impl.jdo.CommandJdo$TitleProvider +
o.a.i.extensions.commandlog.impl.jdo.CommandJdoRepository +
o.a.i.extensions.commandlog.impl.ui.CommandServiceMenu +
****

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-config:jar:<managed> +
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/commandlog/impl/CommandSubscriberForJdo.adoc[CommandSubscriberForJdo], xref:refguide:extensions:index/commandlog/impl/IsisModuleExtCommandLogImpl.adoc[IsisModuleExtCommandLogImpl], xref:refguide:extensions:index/commandlog/impl/mixins/HasInteractionId_command.adoc[HasInteractionId_command], xref:refguide:extensions:index/commandlog/impl/mixins/HasUsername_recentCommandsByUser.adoc[HasUsername_recentCommandsByUser], xref:refguide:extensions:index/commandlog/impl/ui/CommandServiceMenu.adoc[CommandServiceMenu]
****
|===

=== Core: Command Replay

[plantuml,Core: Command Replay,svg]
----
@startuml(id=Core:_Command_Replay)
title Core: Command Replay - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Core: Command Replay\n[Software System]" {
  rectangle "==Apache Isis Ext - Command Replay\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Ext - Command Replay for Primary\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Ext - Command Replay for Secondary\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
@enduml
----
.Projects/Modules (Core: Command Replay)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Ext - Command Replay
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-command-replay
Type: pom
Directory: /extensions/core/command-replay
----
|Replays commands to secondary system

|Apache Isis Ext - Command Replay for Primary
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-command-replay-primary
Type: jar
Directory: /extensions/core/command-replay/primary
----
|A module for obtaining commands from a primary

.Components
****
o.a.i.extensions.commandreplay.primary.config.PrimaryConfig +
o.a.i.extensions.commandreplay.primary.spiimpl.CaptureResultOfCommand +
****

.Dependencies
****
org.apache.isis.core:isis-core-config:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.core:isis-schema:jar:<managed> +
org.apache.isis.extensions:isis-extensions-command-log-jdo:jar:<managed> +
org.apache.isis.mappings:isis-mappings-jaxrsclient-applib:jar:<managed> +
org.apache.isis.mappings:isis-mappings-jaxrsclient-impl:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/commandreplay/primary/IsisModuleExtCommandReplayPrimary.adoc[IsisModuleExtCommandReplayPrimary], xref:refguide:extensions:index/commandreplay/primary/config/PrimaryConfig.adoc[PrimaryConfig], xref:refguide:extensions:index/commandreplay/primary/mixins/Object_openOnSecondary.adoc[Object_openOnSecondary], xref:refguide:extensions:index/commandreplay/primary/restapi/CommandRetrievalService.adoc[CommandRetrievalService], xref:refguide:extensions:index/commandreplay/primary/ui/CommandReplayOnPrimaryService.adoc[CommandReplayOnPrimaryService]
****

|Apache Isis Ext - Command Replay for Secondary
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-command-replay-secondary
Type: jar
Directory: /extensions/core/command-replay/secondary
----
|A module providing a Quartz Job to run on a secondary system,
for obtaining commands from a primary and saving them so that they are replayed.

.Components
****
o.a.i.extensions.commandreplay.secondary.analyser.CommandReplayAnalyserException +
o.a.i.extensions.commandreplay.secondary.analyser.CommandReplayAnalyserResult +
o.a.i.extensions.commandreplay.secondary.analysis.CommandReplayAnalysisService +
o.a.i.extensions.commandreplay.secondary.clock.TickingClockService +
o.a.i.extensions.commandreplay.secondary.config.SecondaryConfig +
o.a.i.extensions.commandreplay.secondary.executor.CommandExecutorServiceWithTime +
o.a.i.extensions.commandreplay.secondary.fetch.CommandFetcher +
****

.Dependencies
****
org.apache.isis.core:isis-core-config:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.core:isis-schema:jar:<managed> +
org.apache.isis.extensions:isis-extensions-quartz-impl:jar:<managed> +
org.apache.isis.mappings:isis-mappings-jaxrsclient-applib:jar:<managed> +
org.apache.isis.mappings:isis-mappings-jaxrsclient-impl:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/commandreplay/secondary/IsisModuleExtCommandReplaySecondary.adoc[IsisModuleExtCommandReplaySecondary], xref:refguide:extensions:index/commandreplay/secondary/SecondaryStatus.adoc[SecondaryStatus], xref:refguide:extensions:index/commandreplay/secondary/analyser/CommandReplayAnalyser.adoc[CommandReplayAnalyser], xref:refguide:extensions:index/commandreplay/secondary/analyser/CommandReplayAnalyserException.adoc[CommandReplayAnalyserException], xref:refguide:extensions:index/commandreplay/secondary/analyser/CommandReplayAnalyserResult.adoc[CommandReplayAnalyserResult], xref:refguide:extensions:index/commandreplay/secondary/analysis/CommandReplayAnalysisService.adoc[CommandReplayAnalysisService], xref:refguide:extensions:index/commandreplay/secondary/clock/TickingClockService.adoc[TickingClockService], xref:refguide:extensions:index/commandreplay/secondary/config/SecondaryConfig.adoc[SecondaryConfig], xref:refguide:extensions:index/commandreplay/secondary/executor/CommandExecutorServiceWithTime.adoc[CommandExecutorServiceWithTime], xref:refguide:extensions:index/commandreplay/secondary/fetch/CommandFetcher.adoc[CommandFetcher], xref:refguide:extensions:index/commandreplay/secondary/job/ReplicateAndReplayJob.adoc[ReplicateAndReplayJob], xref:refguide:extensions:index/commandreplay/secondary/job/SecondaryStatusData.adoc[SecondaryStatusData], xref:refguide:extensions:index/commandreplay/secondary/jobcallables/ReplicateAndRunCommands.adoc[ReplicateAndRunCommands], xref:refguide:extensions:index/commandreplay/secondary/mixins/CommandJdo_exclude.adoc[CommandJdo_exclude], xref:refguide:extensions:index/commandreplay/secondary/mixins/CommandJdo_replayQueue.adoc[CommandJdo_replayQueue], xref:refguide:extensions:index/commandreplay/secondary/mixins/Object_openOnPrimary.adoc[Object_openOnPrimary], xref:refguide:extensions:index/commandreplay/secondary/spi/ReplayCommandExecutionController.adoc[ReplayCommandExecutionController], xref:refguide:extensions:index/commandreplay/secondary/ui/CommandReplayOnSecondaryService.adoc[CommandReplayOnSecondaryService]
****
|===

=== Core: Model Annotation

[plantuml,Core: Model Annotation,svg]
----
@startuml(id=Core:_Model_Annotation)
title Core: Model Annotation - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Core: Model Annotation\n[Software System]" {
  rectangle "==Apache Isis Ext - @Model\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Core: Model Annotation)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Ext - @Model
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-modelannotation
Type: jar
Directory: /extensions/core/model-annotation
----
|Allows supporting methods to be annotated as @Model, to make explicit the bounds of the metamodel.

.Components
****
o.a.i.extensions.modelannotation.metamodel.services.IncubatorMetaModelPlugin +
****

.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/modelannotation/applib/IsisModuleIncModelApplib.adoc[IsisModuleIncModelApplib], xref:refguide:extensions:index/modelannotation/applib/annotation/Model.adoc[Model], xref:refguide:extensions:index/modelannotation/metamodel/IsisModuleExtModelAnnotation.adoc[IsisModuleExtModelAnnotation], xref:refguide:extensions:index/modelannotation/metamodel/facets/SupportingMethodValidatorRefinerFactory.adoc[SupportingMethodValidatorRefinerFactory], xref:refguide:extensions:index/modelannotation/metamodel/services/IncubatorMetaModelPlugin.adoc[IncubatorMetaModelPlugin]
****
|===

=== Core: Quartz

[plantuml,Core: Quartz,svg]
----
@startuml(id=Core:_Quartz)
title Core: Quartz - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Core: Quartz\n[Software System]" {
  rectangle "==Apache Isis Ext - Quartz\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Ext - Quartz Impl\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
}
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (Core: Quartz)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Ext - Quartz
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-quartz
Type: pom
Directory: /extensions/core/quartz
----
|Integrates Quartz

|Apache Isis Ext - Quartz Impl
[source,yaml]
----
Group: org.apache.isis.extensions
Artifact: isis-extensions-quartz-impl
Type: jar
Directory: /extensions/core/quartz/impl
----
|.Dependencies
****
org.apache.isis.core:isis-core-config:jar:<managed> +
org.apache.isis.core:isis-core-security:jar:<managed> +
org.apache.isis.extensions:isis-extensions-command-log-jdo:jar:<managed> +
org.springframework.boot:spring-boot-starter-quartz:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/quartz/IsisModuleExtQuartzImpl.adoc[IsisModuleExtQuartzImpl], xref:refguide:extensions:index/quartz/context/JobExecutionData.adoc[JobExecutionData], xref:refguide:extensions:index/quartz/spring/AutowiringSpringBeanJobFactory.adoc[AutowiringSpringBeanJobFactory]
****
|===

=== Security: Secman

=== Security: Shiro LDAP Realm

=== RO Viewer: CORS

=== Wicket Viewer: Excel Download

=== Wicket Viewer: Full Calendar

=== Wicket Viewer: Pdf.js

== Subdomains

[plantuml,Subdomains,svg]
----
@startuml(id=Subdomains)
title Subdomains - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<11>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<12>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<9>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<10>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Subdomains\n[Software System]" {
  rectangle "==Apache Isis Sub - Docx (applib)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Sub - Docx (parent)\n<size:10>[Container: packaging: pom]</size>" <<3>> as 3
  rectangle "==Apache Isis Sub - Freemarker (applib)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Sub - Freemarker (parent)\n<size:10>[Container: packaging: pom]</size>" <<5>> as 5
  rectangle "==Apache Isis Sub - Ognl (applib)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
  rectangle "==Apache Isis Sub - Ognl (parent)\n<size:10>[Container: packaging: pom]</size>" <<7>> as 7
  rectangle "==Apache Isis Sub - PDF Box (applib)\n<size:10>[Container: packaging: jar]</size>" <<10>> as 10
  rectangle "==Apache Isis Sub - PDF Box (parent)\n<size:10>[Container: packaging: pom]</size>" <<9>> as 9
  rectangle "==Apache Isis Sub - Zip (applib)\n<size:10>[Container: packaging: jar]</size>" <<12>> as 12
  rectangle "==Apache Isis Sub - Zip (parent)\n<size:10>[Container: packaging: pom]</size>" <<11>> as 11
  rectangle "==Apache Isis Subdomains\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
3 .[#707070].> 4 : ""
5 .[#707070].> 6 : ""
7 .[#707070].> 8 : ""
9 .[#707070].> 10 : ""
11 .[#707070].> 12 : ""
2 .[#707070].> 3 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 7 : ""
2 .[#707070].> 9 : ""
2 .[#707070].> 11 : ""
@enduml
----
.Projects/Modules (Subdomains)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Subdomains
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains
Type: pom
Directory: /subdomains
----
|A library of domain services and of supporting subdomains (often technical in nature), to be called from the
core domain of an Apache Isis applications.

.Dependencies
****
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Sub - Docx (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-docx
Type: pom
Directory: /subdomains/docx
----
|Uses the Apache POI library for mail merge functions of .docx Word documents

|Apache Isis Sub - Docx (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-docx-applib
Type: jar
Directory: /subdomains/docx/applib
----
|.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
****

|Apache Isis Sub - Freemarker (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-freemarker
Type: pom
Directory: /subdomains/freemarker
----
|Integrates Freemarker Library

|Apache Isis Sub - Freemarker (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-freemarker-applib
Type: jar
Directory: /subdomains/freemarker/applib
----
|.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
****

|Apache Isis Sub - Ognl (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-ognl
Type: pom
Directory: /subdomains/ognl
----
|Integrates Ognl Library

|Apache Isis Sub - Ognl (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-ognl-applib
Type: jar
Directory: /subdomains/ognl/applib
----
|.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
****

|Apache Isis Sub - PDF Box (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-pdfbox
Type: pom
Directory: /subdomains/pdfbox
----
|Integrates PDF Box Library

|Apache Isis Sub - PDF Box (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-pdfbox-applib
Type: jar
Directory: /subdomains/pdfbox/applib
----
|Integrates PDF Box Library

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
****

|Apache Isis Sub - Zip (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-zip
Type: pom
Directory: /subdomains/zip
----
|A domain service for Apache Isis', for zipping utilities.

|Apache Isis Sub - Zip (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-zip-applib
Type: jar
Directory: /subdomains/zip/applib
----
|.Components
****
o.a.i.extensions.zip.dom.impl.ZipService +
****

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****
|===

=== Base

[plantuml,Base,svg]
----
@startuml(id=Base)
title Base - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Base\n[Software System]" {
  rectangle "==Apache Isis Sub - Base (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Sub - Base (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (Base)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Sub - Base (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-base
Type: pom
Directory: /subdomains/base
----
|A module providing Base utilities for other subdomain modules

|Apache Isis Sub - Base (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-base-applib
Type: jar
Directory: /subdomains/base/applib
----
|.Components
****
o.a.i.subdomains.base.applib.services.calendar.CalendarService +
****

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:subdomains:index/base/applib/Chained.adoc[Chained], xref:refguide:subdomains:index/base/applib/Dflt.adoc[Dflt], xref:refguide:subdomains:index/base/applib/IsisModuleSubdomainsBaseApplib.adoc[IsisModuleSubdomainsBaseApplib], xref:refguide:subdomains:index/base/applib/PowerType.adoc[PowerType], xref:refguide:subdomains:index/base/applib/Titled.adoc[Titled], xref:refguide:subdomains:index/base/applib/TitledEnum.adoc[TitledEnum], xref:refguide:subdomains:index/base/applib/services/BaseServicesModule.adoc[BaseServicesModule], xref:refguide:subdomains:index/base/applib/services/calendar/CalendarService.adoc[CalendarService], xref:refguide:subdomains:index/base/applib/types/DescriptionType.adoc[DescriptionType], xref:refguide:subdomains:index/base/applib/types/FqcnType.adoc[FqcnType], xref:refguide:subdomains:index/base/applib/types/MoneyType.adoc[MoneyType], xref:refguide:subdomains:index/base/applib/types/NameType.adoc[NameType], xref:refguide:subdomains:index/base/applib/types/NotesType.adoc[NotesType], xref:refguide:subdomains:index/base/applib/types/ObjectIdentifierType.adoc[ObjectIdentifierType], xref:refguide:subdomains:index/base/applib/types/PercentageType.adoc[PercentageType], xref:refguide:subdomains:index/base/applib/types/ProperNameType.adoc[ProperNameType], xref:refguide:subdomains:index/base/applib/types/ReferenceType.adoc[ReferenceType], xref:refguide:subdomains:index/base/applib/types/TitleType.adoc[TitleType], xref:refguide:subdomains:index/base/applib/types/UrlTemplateType.adoc[UrlTemplateType], xref:refguide:subdomains:index/base/applib/types/UserNameType.adoc[UserNameType], xref:refguide:subdomains:index/base/applib/types/XxxType.adoc[XxxType], xref:refguide:subdomains:index/base/applib/utils/ClassUtils.adoc[ClassUtils], xref:refguide:subdomains:index/base/applib/utils/JodaPeriodUtils.adoc[JodaPeriodUtils], xref:refguide:subdomains:index/base/applib/utils/MathUtils.adoc[MathUtils], xref:refguide:subdomains:index/base/applib/utils/MessageUtils.adoc[MessageUtils], xref:refguide:subdomains:index/base/applib/utils/StringUtils.adoc[StringUtils], xref:refguide:subdomains:index/base/applib/utils/TitleBuilder.adoc[TitleBuilder], xref:refguide:subdomains:index/base/applib/valuetypes/AbstractInterval.adoc[AbstractInterval], xref:refguide:subdomains:index/base/applib/valuetypes/LocalDateInterval.adoc[LocalDateInterval], xref:refguide:subdomains:index/base/applib/valuetypes/VT.adoc[VT], xref:refguide:subdomains:index/base/applib/with/WithCodeComparable.adoc[WithCodeComparable], xref:refguide:subdomains:index/base/applib/with/WithCodeGetter.adoc[WithCodeGetter], xref:refguide:subdomains:index/base/applib/with/WithCodeUnique.adoc[WithCodeUnique], xref:refguide:subdomains:index/base/applib/with/WithDescriptionComparable.adoc[WithDescriptionComparable], xref:refguide:subdomains:index/base/applib/with/WithDescriptionGetter.adoc[WithDescriptionGetter], xref:refguide:subdomains:index/base/applib/with/WithDescriptionUnique.adoc[WithDescriptionUnique], xref:refguide:subdomains:index/base/applib/with/WithInterval.adoc[WithInterval], xref:refguide:subdomains:index/base/applib/with/WithIntervalContiguous.adoc[WithIntervalContiguous], xref:refguide:subdomains:index/base/applib/with/WithIntervalMutable.adoc[WithIntervalMutable], xref:refguide:subdomains:index/base/applib/with/WithNameComparable.adoc[WithNameComparable], xref:refguide:subdomains:index/base/applib/with/WithNameGetter.adoc[WithNameGetter], xref:refguide:subdomains:index/base/applib/with/WithNameUnique.adoc[WithNameUnique], xref:refguide:subdomains:index/base/applib/with/WithReferenceComparable.adoc[WithReferenceComparable], xref:refguide:subdomains:index/base/applib/with/WithReferenceGetter.adoc[WithReferenceGetter], xref:refguide:subdomains:index/base/applib/with/WithReferenceUnique.adoc[WithReferenceUnique], xref:refguide:subdomains:index/base/applib/with/WithSequence.adoc[WithSequence], xref:refguide:subdomains:index/base/applib/with/WithStartDate.adoc[WithStartDate], xref:refguide:subdomains:index/base/applib/with/WithTitleComparable.adoc[WithTitleComparable], xref:refguide:subdomains:index/base/applib/with/WithTitleGetter.adoc[WithTitleGetter], xref:refguide:subdomains:index/base/applib/with/WithTitleUnique.adoc[WithTitleUnique]
****
|===

=== Excel

[plantuml,Excel,svg]
----
@startuml(id=Excel)
title Excel - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Excel\n[Software System]" {
  rectangle "==Apache Isis Sub - Excel (Fixtures)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Sub - Excel (Integ Tests)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Sub - Excel (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Sub - Excel (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Sub - Excel (testing support)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
}
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 3 : ""
2 .[#707070].> 6 : ""
@enduml
----
.Projects/Modules (Excel)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Sub - Excel (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-excel
Type: pom
Directory: /subdomains/excel
----
|A domain service for Apache Isis', allowing collections
of (view model) objects to be exported/imported to/from an
Excel spreadsheet.  Also support for excel-based fixtures.

|Apache Isis Sub - Excel (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-excel-applib
Type: jar
Directory: /subdomains/excel/applib
----
|.Components
****
o.a.i.subdomains.excel.applib.dom.ExcelService +
****

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
org.apache.poi:poi-ooxml:jar:<managed> +
org.apache.poi:poi-ooxml-schemas:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:subdomains:index/excel/applib/IsisModuleSubdomainsExcelApplib.adoc[IsisModuleSubdomainsExcelApplib], xref:refguide:subdomains:index/excel/applib/dom/AggregationType.adoc[AggregationType], xref:refguide:subdomains:index/excel/applib/dom/ExcelMetaDataEnabled.adoc[ExcelMetaDataEnabled], xref:refguide:subdomains:index/excel/applib/dom/ExcelService.adoc[ExcelService], xref:refguide:subdomains:index/excel/applib/dom/HyperLink.adoc[HyperLink], xref:refguide:subdomains:index/excel/applib/dom/PivotColumn.adoc[PivotColumn], xref:refguide:subdomains:index/excel/applib/dom/PivotDecoration.adoc[PivotDecoration], xref:refguide:subdomains:index/excel/applib/dom/PivotRow.adoc[PivotRow], xref:refguide:subdomains:index/excel/applib/dom/PivotValue.adoc[PivotValue], xref:refguide:subdomains:index/excel/applib/dom/RowHandler.adoc[RowHandler], xref:refguide:subdomains:index/excel/applib/dom/WorksheetContent.adoc[WorksheetContent], xref:refguide:subdomains:index/excel/applib/dom/WorksheetSpec.adoc[WorksheetSpec], xref:refguide:subdomains:index/excel/applib/dom/util/AnnotationList.adoc[AnnotationList], xref:refguide:subdomains:index/excel/applib/dom/util/AnnotationTriplet.adoc[AnnotationTriplet], xref:refguide:subdomains:index/excel/applib/dom/util/ExcelFileBlobConverter.adoc[ExcelFileBlobConverter], xref:refguide:subdomains:index/excel/applib/dom/util/ExcelServiceImpl.adoc[ExcelServiceImpl], xref:refguide:subdomains:index/excel/applib/dom/util/Mode.adoc[Mode], xref:refguide:subdomains:index/excel/applib/dom/util/PivotUtils.adoc[PivotUtils], xref:refguide:subdomains:index/excel/applib/dom/util/SheetPivoter.adoc[SheetPivoter]
****

|Apache Isis Sub - Excel (Fixtures)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-excel-fixtures
Type: jar
Directory: /subdomains/excel/fixture
----
|.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed> +
org.apache.isis.subdomains:isis-subdomains-excel-applib:jar:<managed> +
org.apache.isis.subdomains:isis-subdomains-excel-testing:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Sub - Excel (Integ Tests)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-excel-integtests
Type: jar
Directory: /subdomains/excel/integtests
----
|.Dependencies
****
org.apache.isis.mavendeps:isis-mavendeps-integtests:pom:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed> +
org.apache.isis.subdomains:isis-subdomains-excel-fixtures:jar:<managed> +
org.apache.isis.testing:isis-testing-fakedata-applib:jar:<managed> +
org.hsqldb:hsqldb:jar:<managed> +
****

|Apache Isis Sub - Excel (testing support)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-excel-testing
Type: jar
Directory: /subdomains/excel/testing
----
|.Dependencies
****
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.subdomains:isis-subdomains-excel-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:subdomains:index/excel/testing/ExcelFixture.adoc[ExcelFixture], xref:refguide:subdomains:index/excel/testing/ExcelFixture2.adoc[ExcelFixture2], xref:refguide:subdomains:index/excel/testing/ExcelFixtureRowHandler.adoc[ExcelFixtureRowHandler], xref:refguide:subdomains:index/excel/testing/ExcelFixtureWorkbookHandler.adoc[ExcelFixtureWorkbookHandler], xref:refguide:subdomains:index/excel/testing/FixtureAwareRowHandler.adoc[FixtureAwareRowHandler], xref:refguide:subdomains:index/excel/testing/IsisModuleSubdomainsExcelTesting.adoc[IsisModuleSubdomainsExcelTesting]
****
|===

=== Spring

[plantuml,Spring,svg]
----
@startuml(id=Spring)
title Spring - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Spring\n[Software System]" {
  rectangle "==Apache Isis Sub - Spring (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Sub - Spring (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (Spring)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Sub - Spring (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-spring
Type: pom
Directory: /subdomains/spring
----
|Utility services for interacting with the Spring application context (that hosts the Apache Isis application itself)

|Apache Isis Sub - Spring (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-spring-applib
Type: jar
Directory: /subdomains/spring/applib
----
|.Components
****
o.a.i.subdomains.spring.applib.service.SpringBeansService +
****

.Dependencies
****
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:subdomains:index/spring/applib/IsisModuleSubdomainsSpringApplib.adoc[IsisModuleSubdomainsSpringApplib], xref:refguide:subdomains:index/spring/applib/service/BeanDescriptor.adoc[BeanDescriptor], xref:refguide:subdomains:index/spring/applib/service/ContextBeans.adoc[ContextBeans], xref:refguide:subdomains:index/spring/applib/service/SpringBeansService.adoc[SpringBeansService]
****
|===

=== XDocReport

[plantuml,XDocReport,svg]
----
@startuml(id=XDocReport)
title XDocReport - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "XDocReport\n[Software System]" {
  rectangle "==Apache Isis Sub - XdocReport (applib)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Sub - XdocReport (parent)\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (XDocReport)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Sub - XdocReport (parent)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-xdocreport
Type: pom
Directory: /subdomains/xdocreport
----
|Integrates XDoc Report Library

|Apache Isis Sub - XdocReport (applib)
[source,yaml]
----
Group: org.apache.isis.subdomains
Artifact: isis-subdomains-xdocreport-applib
Type: jar
Directory: /subdomains/xdocreport/applib
----
|.Components
****
o.a.i.subdomains.xdocreport.applib.service.XDocReportService +
****

.Dependencies
****
fr.opensagres.xdocreport:fr.opensagres.xdocreport.converter.docx.xwpf:jar:<managed> +
fr.opensagres.xdocreport:fr.opensagres.xdocreport.document.docx:jar:<managed> +
fr.opensagres.xdocreport:fr.opensagres.xdocreport.template.freemarker:jar:<managed> +
fr.opensagres.xdocreport:org.apache.poi.xwpf.converter.core:jar:<managed> +
fr.opensagres.xdocreport:org.apache.poi.xwpf.converter.pdf:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:subdomains:index/xdocreport/applib/IsisModuleSubdomainsXDocReportApplib.adoc[IsisModuleSubdomainsXDocReportApplib], xref:refguide:subdomains:index/xdocreport/applib/service/OutputType.adoc[OutputType], xref:refguide:subdomains:index/xdocreport/applib/service/XDocReportModel.adoc[XDocReportModel], xref:refguide:subdomains:index/xdocreport/applib/service/XDocReportService.adoc[XDocReportService]
****
|===

== Tooling

[plantuml,Tooling,svg]
----
@startuml(id=Tooling)
title Tooling - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<8>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Tooling\n[Software System]" {
  rectangle "==Apache Isis - Tooling\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis - Tooling - C4 Modeling\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis - Tooling - CLI (Command Line Interface)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis - Tooling - Java Model (Code Mining)\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis - Tooling - Java to Asciidoc (Code Mining)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis - Tooling - Model for AsciiDoc\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
  rectangle "==Apache Isis - Tooling - Project Model (Code mining)\n<size:10>[Container: packaging: jar]</size>" <<8>> as 8
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 7 : ""
2 .[#707070].> 8 : ""
@enduml
----
.Projects/Modules (Tooling)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis - Tooling
[source,yaml]
----
Group: org.apache.isis.tooling
Artifact: isis-tooling
Type: pom
Directory: /tooling
----
|Libraries and tools not depending on the _Apache Isis Core_ ecosystem,
eg. code mining, automated documentation.
(Targeted for JVM 11+)

.Dependencies
****
com.google.code.findbugs:annotations:jar:3.0.1u2 +
org.junit.jupiter:junit-jupiter-api:jar:<managed> +
org.junit.jupiter:junit-jupiter-engine:jar:<managed> +
org.junit.vintage:junit-vintage-engine:jar:<managed> +
org.mapstruct:mapstruct-processor:jar:1.4.2.Final +
org.projectlombok:lombok:jar:<managed> +
org.slf4j:slf4j-api:jar:<managed> +
org.springframework.boot:spring-boot-starter-log4j2:jar:<managed> +
****

|Apache Isis - Tooling - C4 Modeling
[source,yaml]
----
Group: org.apache.isis.tooling
Artifact: isis-tooling-c4modeling
Type: jar
Directory: /tooling/c4modeling
----
|Library for programmatic C4 Model generation.

See https://c4model.com/

.Dependencies
****
com.structurizr:structurizr-core:jar:<managed> +
com.structurizr:structurizr-plantuml:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
****

|Apache Isis - Tooling - CLI (Command Line Interface)
[source,yaml]
----
Group: org.apache.isis.tooling
Artifact: isis-tooling-cli
Type: jar
Directory: /tooling/cli
----
|Command Line Interface for the _Apache Isis Tooling_ ecosystem.

.Dependencies
****
info.picocli:picocli:jar:<managed> +
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.tooling:isis-tooling-c4modeling:jar:<managed> +
org.apache.isis.tooling:isis-tooling-java2adoc:jar:<managed> +
org.apache.isis.tooling:isis-tooling-javamodel:jar:<managed> +
org.apache.isis.tooling:isis-tooling-model4adoc:jar:<managed> +
org.apache.isis.tooling:isis-tooling-projectmodel:jar:<managed> +
****

|Apache Isis - Tooling - Java to Asciidoc (Code Mining)
[source,yaml]
----
Group: org.apache.isis.tooling
Artifact: isis-tooling-java2adoc
Type: jar
Directory: /tooling/java2adoc
----
|Code mining library for Java source to Asciidoc conversion.

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.tooling:isis-tooling-javamodel:jar:<managed> +
org.apache.isis.tooling:isis-tooling-model4adoc:jar:<managed> +
org.jsoup:jsoup:jar:<managed> +
****

|Apache Isis - Tooling - Java Model (Code Mining)
[source,yaml]
----
Group: org.apache.isis.tooling
Artifact: isis-tooling-javamodel
Type: jar
Directory: /tooling/javamodel
----
|Code mining library for Java bytecode introspection.

.Dependencies
****
com.github.andi-huber:code-assert:jar:-SNAPSHOT +
com.github.javaparser:javaparser-core:jar:${javaparser.version} +
org.apache.isis.commons:isis-commons:jar:<managed> +
****

|Apache Isis - Tooling - Model for AsciiDoc
[source,yaml]
----
Group: org.apache.isis.tooling
Artifact: isis-tooling-model4adoc
Type: jar
Directory: /tooling/model4adoc
----
|Library for programmatic AsciiDoc generation.

The AsciiDoc name is trademarked by the Eclipse Foundation (https://www.eclipse.org/).
This project is *not* part of the specification effort for _AsciiDoc_ under the
AsciiDoc Working Group. See https://projects.eclipse.org/proposals/asciidoc-language
and https://accounts.eclipse.org/mailing-list/asciidoc-wg. However, we are happy to
help with transfer of source code, if any project (under the umbrella of the
AsciiDoc Working Group) is willing to take over.

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.asciidoctor:asciidoctorj:jar:<managed> +
****

|Apache Isis - Tooling - Project Model (Code mining)
[source,yaml]
----
Group: org.apache.isis.tooling
Artifact: isis-tooling-projectmodel
Type: jar
Directory: /tooling/projectmodel
----
|Code mining library for Gradle/Maven project module tree introspection.

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.maven:maven-model-builder:jar:<managed> +
org.gradle:gradle-tooling-api:jar:<managed> +
****
|===

== Regression Tests

[plantuml,Regression Tests,svg]
----
@startuml(id=Regression_Tests)
title Regression Tests - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Regression Tests\n[Software System]" {
  rectangle "==Apache Isis - Regression Tests\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis - Regression Tests (stable)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
}
2 .[#707070].> 3 : ""
@enduml
----
.Projects/Modules (Regression Tests)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis - Regression Tests
[source,yaml]
----
Group: org.apache.isis.regressiontests
Artifact: isis-regressiontests
Type: pom
Directory: /regressiontests
----
|Collection of JUnit tests covering core functionalities of the framework.
(Targeted for JVM 11+)

.Dependencies
****
org.apache.directory.server:apacheds-test-framework:jar:2.0.0.AM26 +
org.apache.isis.extensions:isis-extensions-modelannotation:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-encryption-jbcrypt:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-model:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-persistence-jdo:jar:<managed> +
org.apache.isis.extensions:isis-extensions-secman-shiro-realm:jar:<managed> +
org.apache.isis.extensions:isis-extensions-shiro-realm-ldap-impl:jar:<managed> +
org.apache.isis.mappings:isis-mappings-restclient-applib:jar:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-integtests:pom:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdk11:pom:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jdo:pom:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-jpa:pom:<managed> +
org.apache.isis.mavendeps:isis-mavendeps-webapp:pom:<managed> +
org.apache.isis.security:isis-security-shiro:jar:<managed> +
org.apache.isis.testing:isis-testing-fixtures-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-integtestsupport-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-specsupport-applib:jar:<managed> +
org.apache.isis.testing:isis-testing-unittestsupport-applib:jar:<managed> +
org.apache.isis.tooling:isis-tooling-model4adoc:jar:${project.version} +
org.apache.isis.viewer:isis-viewer-common:jar:<managed> +
org.glassfish:javax.json:jar:1.1.4 +
org.glassfish.jersey.ext:jersey-spring5:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis - Regression Tests (stable)
[source,yaml]
----
Group: org.apache.isis.regressiontests
Artifact: isis-regressiontests-stable
Type: jar
Directory: /regressiontests/stable
----
|.Components
****
o.a.i.testdomain.applayer.ApplicationLayerTestFactory +
o.a.i.testdomain.applayer.ApplicationLayerTestFactory$PreCommitListener +
o.a.i.testdomain.applayer.publishing.CommandSubscriberForTesting +
o.a.i.testdomain.applayer.publishing.EntityChangesSubscriberForTesting +
o.a.i.testdomain.applayer.publishing.EntityPropertyChangeSubscriberForTesting +
o.a.i.testdomain.applayer.publishing.ExecutionSubscriberForTesting +
o.a.i.testdomain.conf.Configuration_headless$HeadlessCommandSupport +
o.a.i.testdomain.jdo.JdoInventoryDao +
o.a.i.testdomain.jpa.JpaInventoryDao +
o.a.i.testdomain.jpa.springdata.EmployeeRepository +
o.a.i.testdomain.util.interaction.InteractionBoundaryProbe +
o.a.i.testdomain.util.kv.KVStoreForTesting +
o.a.i.testdomain.util.rest.RestEndpointService +
****

.Dependencies
****
org.apache.isis.extensions:isis-extensions-cors-impl:jar:<managed> +
org.glassfish.jersey.ext:jersey-spring5:jar:<managed> +
****
|===

== Incubator

[plantuml,Incubator,svg]
----
@startuml(id=Incubator)
title Incubator - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Incubator\n[Software System]" {
  rectangle "==Apache Isis Incubator\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Incubator)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Incubator
[source,yaml]
----
Group: org.apache.isis.incubator
Artifact: isis-incubator
Type: pom
Directory: /incubator
----
|Collection of Apache Isis extensions, subdomains or BC mappings, currently incubating.

.Dependencies
****
org.projectlombok:lombok:jar:<managed> +
****
|===

=== Kroviz Client

[plantuml,Kroviz Client,svg]
----
@startuml(id=Kroviz_Client)
title Kroviz Client - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Kroviz Client\n[Software System]" {
  rectangle "==Apache Isis Inc - Client kroViz\n<size:10>[Container: packaging: jar]</size>" <<2>> as 2
}
@enduml
----
.Projects/Modules (Kroviz Client)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Inc - Client kroViz
[source,yaml]
----
Group: org.apache.isis.incubator.clients
Artifact: isis-client-kroviz
Type: jar
Directory: /incubator/clients/kroviz
----
|Initial sketches
|===

=== JavaFX Viewer

[plantuml,JavaFX Viewer,svg]
----
@startuml(id=JavaFX_Viewer)
title JavaFX Viewer - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "JavaFX Viewer\n[Software System]" {
  rectangle "==Apache Isis Inc - Viewer JavaFX\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Inc - Viewer JavaFX (Model)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Inc - Viewer JavaFX (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Inc - Viewer JavaFX (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
@enduml
----
.Projects/Modules (JavaFX Viewer)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Inc - Viewer JavaFX
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-javafx
Type: pom
Directory: /incubator/viewers/javafx
----
|Initial sketches

|Apache Isis Inc - Viewer JavaFX (Model)
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-javafx-model
Type: jar
Directory: /incubator/viewers/javafx/model
----
|.Dependencies
****
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.viewer:isis-viewer-common:jar:<managed> +
org.openjfx:javafx-base:jar:<managed> +
org.openjfx:javafx-controls:jar:<managed> +
org.openjfx:javafx-fxml:jar:<managed> +
org.openjfx:javafx-swing:jar:<managed> +
org.openjfx:javafx-web:jar:<managed> +
****

|Apache Isis Inc - Viewer JavaFX (UI Components)
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-javafx-ui
Type: jar
Directory: /incubator/viewers/javafx/ui
----
|.Components
****
o.a.i.incubator.viewer.javafx.ui.components.UiComponentFactoryFx +
o.a.i.incubator.viewer.javafx.ui.components.markup.MarkupFieldFactory +
o.a.i.incubator.viewer.javafx.ui.components.number.NumberFieldFactory +
o.a.i.incubator.viewer.javafx.ui.components.objectref.ObjectReferenceFieldFactory +
o.a.i.incubator.viewer.javafx.ui.components.other.FallbackFieldFactory +
o.a.i.incubator.viewer.javafx.ui.components.temporal.TemporalFieldFactory +
o.a.i.incubator.viewer.javafx.ui.components.text.TextFieldFactory +
o.a.i.incubator.viewer.javafx.ui.decorator.disabling.DisablingDecoratorForButton +
o.a.i.incubator.viewer.javafx.ui.decorator.disabling.DisablingDecoratorForFormField +
o.a.i.incubator.viewer.javafx.ui.decorator.icon.IconDecoratorForLabeled +
o.a.i.incubator.viewer.javafx.ui.decorator.icon.IconDecoratorForMenuItem +
o.a.i.incubator.viewer.javafx.ui.decorator.icon.IconServiceDefault +
o.a.i.incubator.viewer.javafx.ui.decorator.prototyping.PrototypingDecoratorForButton +
o.a.i.incubator.viewer.javafx.ui.decorator.prototyping.PrototypingDecoratorForFormField +
o.a.i.incubator.viewer.javafx.ui.decorator.prototyping.PrototypingInfoPopupProvider +
o.a.i.incubator.viewer.javafx.ui.main.MainViewFx +
o.a.i.incubator.viewer.javafx.ui.main.UiActionHandlerFx +
o.a.i.incubator.viewer.javafx.ui.main.UiBuilderFx +
o.a.i.incubator.viewer.javafx.ui.main.UiContextFxDefault +
****

.Dependencies
****
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.incubator.viewer:isis-viewer-javafx-model:jar:<managed> +
****

|Apache Isis Inc - Viewer JavaFX (Viewer)
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-javafx-viewer
Type: jar
Directory: /incubator/viewers/javafx/viewer
----
|.Dependencies
****
org.apache.isis.incubator.viewer:isis-viewer-javafx-ui:jar:<managed> +
****
|===

=== Vaadin Viewer

[plantuml,Vaadin Viewer,svg]
----
@startuml(id=Vaadin_Viewer)
title Vaadin Viewer - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Vaadin Viewer\n[Software System]" {
  rectangle "==Apache Isis Inc - Viewer Vaadin\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Inc - Viewer Vaadin (Model)\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Inc - Viewer Vaadin (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Inc - Viewer Vaadin (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
@enduml
----
.Projects/Modules (Vaadin Viewer)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Inc - Viewer Vaadin
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-vaadin
Type: pom
Directory: /incubator/viewers/vaadin
----
|Initial sketches

|Apache Isis Inc - Viewer Vaadin (Model)
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-vaadin-model
Type: jar
Directory: /incubator/viewers/vaadin/model
----
|.Dependencies
****
com.github.fge:jackson-coreutils:jar:1.8 +
com.vaadin:vaadin:jar:<managed> +
io.swagger:swagger-compat-spec-parser:jar:1.0.39 +
io.swagger:swagger-parser:jar:1.0.39 +
io.swagger.core.v3:swagger-core:jar:2.0.5 +
io.swagger.core.v3:swagger-models:jar:2.0.5 +
io.swagger.parser.v3:swagger-parser-core:jar:2.0.5 +
io.swagger.parser.v3:swagger-parser-v3:jar:2.0.5 +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-webapp:jar:<managed> +
org.apache.isis.viewer:isis-viewer-common:jar:<managed> +
****

|Apache Isis Inc - Viewer Vaadin (UI Components)
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-vaadin-ui
Type: jar
Directory: /incubator/viewers/vaadin/ui
----
|.Components
****
o.a.i.incubator.viewer.vaadin.ui.auth.LogoutHandlerVaa +
o.a.i.incubator.viewer.vaadin.ui.auth.VaadinAuthenticationHandler +
o.a.i.incubator.viewer.vaadin.ui.components.UiComponentFactoryVaa +
o.a.i.incubator.viewer.vaadin.ui.components.blob.BlobFieldFactory +
o.a.i.incubator.viewer.vaadin.ui.components.clob.ClobFieldFactory +
o.a.i.incubator.viewer.vaadin.ui.components.markup.MarkupFieldFactory +
o.a.i.incubator.viewer.vaadin.ui.components.other.FallbackFieldFactory +
o.a.i.incubator.viewer.vaadin.ui.components.temporal.TemporalFieldFactory +
o.a.i.incubator.viewer.vaadin.ui.components.text.TextFieldFactory +
o.a.i.incubator.viewer.vaadin.ui.components.text.uuid.UuidFieldFactory +
o.a.i.incubator.viewer.vaadin.ui.pages.main.UiActionHandlerVaa +
o.a.i.incubator.viewer.vaadin.ui.pages.main.UiContextVaaDefault +
****

.Dependencies
****
com.vaadin:vaadin-spring:jar:<managed> +
commons-fileupload:commons-fileupload:jar:1.4 +
org.apache.isis.core:isis-core-runtimeservices:jar:<managed> +
org.apache.isis.incubator.viewer:isis-viewer-vaadin-model:jar:<managed> +
****

|Apache Isis Inc - Viewer Vaadin (Viewer)
[source,yaml]
----
Group: org.apache.isis.incubator.viewer
Artifact: isis-viewer-vaadin-viewer
Type: jar
Directory: /incubator/viewers/vaadin/viewer
----
|.Dependencies
****
org.apache.isis.incubator.viewer:isis-viewer-vaadin-ui:jar:<managed> +
****
|===

== Legacy

[plantuml,Legacy,svg]
----
@startuml(id=Legacy)
title Legacy - Containers
caption Artifact Hierarchy (Maven)

skinparam {
  shadowing false
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}
hide stereotype
left to right direction
skinparam rectangle<<2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<3>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<4>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<5>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<6>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
skinparam rectangle<<7>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2E6295
}
package "Legacy\n[Software System]" {
  rectangle "==Apache Isis Legacy\n<size:10>[Container: packaging: pom]</size>" <<2>> as 2
  rectangle "==Apache Isis Legacy - Applib\n<size:10>[Container: packaging: jar]</size>" <<3>> as 3
  rectangle "==Apache Isis Legacy - Commons\n<size:10>[Container: packaging: jar]</size>" <<4>> as 4
  rectangle "==Apache Isis Legacy - Metamodel\n<size:10>[Container: packaging: jar]</size>" <<5>> as 5
  rectangle "==Apache Isis Legacy - REST Client\n<size:10>[Container: packaging: jar]</size>" <<6>> as 6
  rectangle "==Apache Isis Legacy - Runtime\n<size:10>[Container: packaging: jar]</size>" <<7>> as 7
}
2 .[#707070].> 3 : ""
2 .[#707070].> 4 : ""
2 .[#707070].> 5 : ""
2 .[#707070].> 6 : ""
2 .[#707070].> 7 : ""
@enduml
----
.Projects/Modules (Legacy)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description

|Apache Isis Legacy
[source,yaml]
----
Group: org.apache.isis.legacy
Artifact: isis-legacy
Type: pom
Directory: /legacy
----
|Collection of deprecated Apache Isis functionality, for removal.

.Dependencies
****
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Legacy - Applib
[source,yaml]
----
Group: org.apache.isis.legacy
Artifact: isis-legacy-applib
Type: jar
Directory: /legacy/extensions/core/applib
----
|To ease migration from Apache Isis versions 1.16+ to 2.0.0.

.Components
****
o.a.i.legacy.applib.DomainObjectContainer +
****

.Dependencies
****
com.google.guava:guava:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
****

|Apache Isis Legacy - Commons
[source,yaml]
----
Group: org.apache.isis.legacy
Artifact: isis-legacy-commons
Type: jar
Directory: /legacy/extensions/core/commons
----
|To ease migration from Apache Isis versions 1.16+ to 2.0.0.

.Dependencies
****
com.google.guava:guava:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
****

|Apache Isis Legacy - Metamodel
[source,yaml]
----
Group: org.apache.isis.legacy
Artifact: isis-legacy-metamodel
Type: jar
Directory: /legacy/extensions/core/metamodel
----
|To ease migration from Apache Isis versions 1.16+ to 2.0.0.

.Dependencies
****
com.google.guava:guava:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-metamodel:jar:<managed> +
org.apache.isis.legacy:isis-legacy-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
****

|Apache Isis Legacy - REST Client
[source,yaml]
----
Group: org.apache.isis.legacy
Artifact: isis-legacy-restclient
Type: jar
Directory: /legacy/mappings/restclient
----
|As defined in Isis v1.x RO Applib.

.Dependencies
****
org.apache.isis.commons:isis-commons:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.viewer:isis-viewer-restfulobjects-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

|Apache Isis Legacy - Runtime
[source,yaml]
----
Group: org.apache.isis.legacy
Artifact: isis-legacy-runtime
Type: jar
Directory: /legacy/extensions/core/runtime
----
|To ease migration from Apache Isis versions 1.16+ to 2.0.0.

.Dependencies
****
com.google.guava:guava:jar:<managed> +
org.apache.isis.core:isis-applib:jar:<managed> +
org.apache.isis.core:isis-core-internaltestsupport:jar:<managed> +
org.apache.isis.core:isis-core-runtime:jar:<managed> +
org.apache.isis.legacy:isis-legacy-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-applib:jar:<managed> +
org.apache.isis.persistence:isis-persistence-jdo-datanucleus:jar:<managed> +
org.apache.isis.viewer:isis-viewer-wicket-ui:jar:<managed> +
org.datanucleus:javax.jdo:jar:<managed> +
****
|===