= 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 Causeway_.

== App

[plantuml,App,svg]
----
@startuml
set separator none
title App - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<App.ApacheCausewayStarterParent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<App>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "App\n<size:10>[Software System]</size>" <<App>> {
  rectangle "==Apache Causeway Starter Parent\n<size:10>[Container: packaging: pom]</size>" <<App.ApacheCausewayStarterParent>> as App.ApacheCausewayStarterParent
}

@enduml
----
.Projects/Modules (App)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

== Mavendeps

[plantuml,Mavendeps,svg]
----
@startuml
set separator none
title Mavendeps - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Mavendeps.ApacheCausewayMavenDeps>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Mavendeps.ApacheCausewayMavenDepsWebapp>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Mavendeps>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Mavendeps\n<size:10>[Software System]</size>" <<Mavendeps>> {
  rectangle "==Apache Causeway Maven Deps\n<size:10>[Container: packaging: pom]</size>" <<Mavendeps.ApacheCausewayMavenDeps>> as Mavendeps.ApacheCausewayMavenDeps
  rectangle "==Apache Causeway Maven Deps - Webapp\n<size:10>[Container: packaging: pom]</size>" <<Mavendeps.ApacheCausewayMavenDepsWebapp>> as Mavendeps.ApacheCausewayMavenDepsWebapp
}

Mavendeps.ApacheCausewayMavenDeps .[#707070,thickness=2].> Mavendeps.ApacheCausewayMavenDepsWebapp : "<color:#707070>"
@enduml
----
.Projects/Modules (Mavendeps)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

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

Note: Also requires a persistence provider.

.Dependencies
****
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
org.apache.causeway.core:causeway-core-security:jar:<managed> +
org.apache.causeway.core:causeway-schema: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
set separator none
title Testing - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Testing.ApacheCausewayTesting>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstArchitectureTestSupportapplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstArchitectureTestSupportparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstFakeDataapplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstFakeDatafixtures>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstFakeDataintegtests>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstFakeDataparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstFixturesapplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstFixturesparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstH2Consoleparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstH2Consoleui>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstHSQLDBManager>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstHSQLDBManagerparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstIntegTestSupportapplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstIntegTestSupportparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstSpecCucumberapplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstSpecCucumberparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstUnitTestSupportapplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing.ApacheCausewayTstUnitTestSupportparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Testing>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Testing\n<size:10>[Software System]</size>" <<Testing>> {
  rectangle "==Apache Causeway Tst - Fixtures (applib)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstFixturesapplib>> as Testing.ApacheCausewayTstFixturesapplib
  rectangle "==Apache Causeway Tst - H2 Console (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstH2Consoleparent>> as Testing.ApacheCausewayTstH2Consoleparent
  rectangle "==Apache Causeway Tst - H2 Console (ui)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstH2Consoleui>> as Testing.ApacheCausewayTstH2Consoleui
  rectangle "==Apache Causeway Tst - HSQLDB Manager (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstHSQLDBManagerparent>> as Testing.ApacheCausewayTstHSQLDBManagerparent
  rectangle "==Apache Causeway Tst - HSQLDB Manager\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstHSQLDBManager>> as Testing.ApacheCausewayTstHSQLDBManager
  rectangle "==Apache Causeway Tst - Integ Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstIntegTestSupportparent>> as Testing.ApacheCausewayTstIntegTestSupportparent
  rectangle "==Apache Causeway Tst - Integ Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstIntegTestSupportapplib>> as Testing.ApacheCausewayTstIntegTestSupportapplib
  rectangle "==Apache Causeway Tst - Spec/Cucumber (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstSpecCucumberparent>> as Testing.ApacheCausewayTstSpecCucumberparent
  rectangle "==Apache Causeway Tst - Spec/Cucumber (applib)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstSpecCucumberapplib>> as Testing.ApacheCausewayTstSpecCucumberapplib
  rectangle "==Apache Causeway Tst - Unit Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstUnitTestSupportparent>> as Testing.ApacheCausewayTstUnitTestSupportparent
  rectangle "==Apache Causeway Testing\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTesting>> as Testing.ApacheCausewayTesting
  rectangle "==Apache Causeway Tst - Unit Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstUnitTestSupportapplib>> as Testing.ApacheCausewayTstUnitTestSupportapplib
  rectangle "==Apache Causeway Tst - Architecture Test Support (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstArchitectureTestSupportparent>> as Testing.ApacheCausewayTstArchitectureTestSupportparent
  rectangle "==Apache Causeway Tst - Architecture Test Support (applib)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstArchitectureTestSupportapplib>> as Testing.ApacheCausewayTstArchitectureTestSupportapplib
  rectangle "==Apache Causeway Tst - FakeData (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstFakeDataparent>> as Testing.ApacheCausewayTstFakeDataparent
  rectangle "==Apache Causeway Tst - FakeData (applib)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstFakeDataapplib>> as Testing.ApacheCausewayTstFakeDataapplib
  rectangle "==Apache Causeway Tst - FakeData (fixtures)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstFakeDatafixtures>> as Testing.ApacheCausewayTstFakeDatafixtures
  rectangle "==Apache Causeway Tst - FakeData (integ tests)\n<size:10>[Container: packaging: jar]</size>" <<Testing.ApacheCausewayTstFakeDataintegtests>> as Testing.ApacheCausewayTstFakeDataintegtests
  rectangle "==Apache Causeway Tst - Fixtures (parent)\n<size:10>[Container: packaging: pom]</size>" <<Testing.ApacheCausewayTstFixturesparent>> as Testing.ApacheCausewayTstFixturesparent
}

Testing.ApacheCausewayTesting .[#707070,thickness=2].> Testing.ApacheCausewayTstArchitectureTestSupportparent : "<color:#707070>"
Testing.ApacheCausewayTesting .[#707070,thickness=2].> Testing.ApacheCausewayTstFakeDataparent : "<color:#707070>"
Testing.ApacheCausewayTesting .[#707070,thickness=2].> Testing.ApacheCausewayTstFixturesparent : "<color:#707070>"
Testing.ApacheCausewayTesting .[#707070,thickness=2].> Testing.ApacheCausewayTstH2Consoleparent : "<color:#707070>"
Testing.ApacheCausewayTesting .[#707070,thickness=2].> Testing.ApacheCausewayTstHSQLDBManagerparent : "<color:#707070>"
Testing.ApacheCausewayTesting .[#707070,thickness=2].> Testing.ApacheCausewayTstIntegTestSupportparent : "<color:#707070>"
Testing.ApacheCausewayTesting .[#707070,thickness=2].> Testing.ApacheCausewayTstSpecCucumberparent : "<color:#707070>"
Testing.ApacheCausewayTesting .[#707070,thickness=2].> Testing.ApacheCausewayTstUnitTestSupportparent : "<color:#707070>"
Testing.ApacheCausewayTstArchitectureTestSupportparent .[#707070,thickness=2].> Testing.ApacheCausewayTstArchitectureTestSupportapplib : "<color:#707070>"
Testing.ApacheCausewayTstFakeDataparent .[#707070,thickness=2].> Testing.ApacheCausewayTstFakeDataapplib : "<color:#707070>"
Testing.ApacheCausewayTstFakeDataparent .[#707070,thickness=2].> Testing.ApacheCausewayTstFakeDatafixtures : "<color:#707070>"
Testing.ApacheCausewayTstFakeDataparent .[#707070,thickness=2].> Testing.ApacheCausewayTstFakeDataintegtests : "<color:#707070>"
Testing.ApacheCausewayTstFixturesparent .[#707070,thickness=2].> Testing.ApacheCausewayTstFixturesapplib : "<color:#707070>"
Testing.ApacheCausewayTstH2Consoleparent .[#707070,thickness=2].> Testing.ApacheCausewayTstH2Consoleui : "<color:#707070>"
Testing.ApacheCausewayTstHSQLDBManagerparent .[#707070,thickness=2].> Testing.ApacheCausewayTstHSQLDBManager : "<color:#707070>"
Testing.ApacheCausewayTstIntegTestSupportparent .[#707070,thickness=2].> Testing.ApacheCausewayTstIntegTestSupportapplib : "<color:#707070>"
Testing.ApacheCausewayTstSpecCucumberparent .[#707070,thickness=2].> Testing.ApacheCausewayTstSpecCucumberapplib : "<color:#707070>"
Testing.ApacheCausewayTstUnitTestSupportparent .[#707070,thickness=2].> Testing.ApacheCausewayTstUnitTestSupportapplib : "<color:#707070>"
@enduml
----
.Projects/Modules (Testing)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

|Apache Causeway Tst - Architecture Test Support (parent)
[source,yaml]
----
Group: org.apache.causeway.testing
Artifact: causeway-testing-archtestsupport
Type: pom
Directory: /testing/archtestsupport
----
|A module providing a library of architecture tests

|Apache Causeway Tst - Architecture Test Support (applib)
[source,yaml]
----
Group: org.apache.causeway.testing
Artifact: causeway-testing-archtestsupport-applib
Type: jar
Directory: /testing/archtestsupport/applib
----
|.Dependencies
****
com.tngtech.archunit:archunit-junit5-api:jar:<managed> +
com.tngtech.archunit:archunit-junit5-engine:jar:<managed> +
org.apache.causeway.commons:causeway-commons:jar:<managed> +
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-integration:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jpa-integration:jar:<managed> +
org.datanucleus:javax.jdo: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/archtestsupport/applib/CausewayModuleTestingArchTestSupportApplib.adoc[CausewayModuleTestingArchTestSupportApplib], xref:refguide:testing:index/archtestsupport/applib/classrules/ArchitectureDomainRules.adoc[ArchitectureDomainRules], xref:refguide:testing:index/archtestsupport/applib/classrules/ArchitectureJdoRules.adoc[ArchitectureJdoRules], xref:refguide:testing:index/archtestsupport/applib/classrules/ArchitectureJpaRules.adoc[ArchitectureJpaRules], xref:refguide:testing:index/archtestsupport/applib/modulerules/ArchitectureModuleRules.adoc[ArchitectureModuleRules], xref:refguide:testing:index/archtestsupport/applib/modulerules/Subpackage.adoc[Subpackage], xref:refguide:testing:index/archtestsupport/applib/modulerules/SubpackageEnum.adoc[SubpackageEnum]
****

|Apache Causeway Tst - FakeData (parent)
[source,yaml]
----
Group: org.apache.causeway.testing
Artifact: causeway-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 Causeway Tst - FakeData (applib)
[source,yaml]
----
Group: org.apache.causeway.testing
Artifact: causeway-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.causeway.commons:causeway-commons:jar:<managed> +
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:testing:index/fakedata/applib/CausewayModuleTestingFakeDataApplib.adoc[CausewayModuleTestingFakeDataApplib], 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/CausewayBlobs.adoc[CausewayBlobs], xref:refguide:testing:index/fakedata/applib/services/CausewayClobs.adoc[CausewayClobs], xref:refguide:testing:index/fakedata/applib/services/CausewayPasswords.adoc[CausewayPasswords], 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/JavaSqlDates.adoc[JavaSqlDates], xref:refguide:testing:index/fakedata/applib/services/JavaSqlTimestamps.adoc[JavaSqlTimestamps], xref:refguide:testing:index/fakedata/applib/services/JavaTimeDateTimes.adoc[JavaTimeDateTimes], xref:refguide:testing:index/fakedata/applib/services/JavaTimeLocalDates.adoc[JavaTimeLocalDates], xref:refguide:testing:index/fakedata/applib/services/JavaTimePeriods.adoc[JavaTimePeriods], 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 Causeway Tst - FakeData (fixtures)
[source,yaml]
----
Group: org.apache.causeway.testing
Artifact: causeway-testing-fakedata-fixtures
Type: jar
Directory: /testing/fakedata/fixtures
----
|.Dependencies
****
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fakedata-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

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

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

|Apache Causeway Tst - Fixtures (applib)
[source,yaml]
----
Group: org.apache.causeway.testing
Artifact: causeway-testing-fixtures-applib
Type: jar
Directory: /testing/fixtures/applib
----
|.Components
****
o.a.i.testing.fixtures.applib.modules.ModuleWithFixturesService +
o.a.i.testing.fixtures.applib.queryresultscache.QueryResultsCacheControlForFixtures +
o.a.i.testing.fixtures.applib.services.InitialFixtureScriptsInstaller +
****

.Dependencies
****
joda-time:joda-time:jar:<managed> +
org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-applib:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jpa-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:testing:index/fixtures/applib/CausewayIntegrationGwtAbstractWithFixtures.adoc[CausewayIntegrationGwtAbstractWithFixtures], xref:refguide:testing:index/fixtures/applib/CausewayIntegrationTestAbstractWithFixtures.adoc[CausewayIntegrationTestAbstractWithFixtures], xref:refguide:testing:index/fixtures/applib/CausewayModuleTestingFixturesApplib.adoc[CausewayModuleTestingFixturesApplib], xref:refguide:testing:index/fixtures/applib/events/FixturesInstalledEvent.adoc[FixturesInstalledEvent], xref:refguide:testing:index/fixtures/applib/events/FixturesInstallingEvent.adoc[FixturesInstallingEvent], xref:refguide:testing:index/fixtures/applib/fixturescripts/ExecutionParameters.adoc[ExecutionParameters], xref:refguide:testing:index/fixtures/applib/fixturescripts/ExecutionParametersDefault.adoc[ExecutionParametersDefault], xref:refguide:testing:index/fixtures/applib/fixturescripts/ExecutionParametersService.adoc[ExecutionParametersService], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureResult.adoc[FixtureResult], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureResultList.adoc[FixtureResultList], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScript.adoc[FixtureScript], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScriptWithExecutionStrategy.adoc[FixtureScriptWithExecutionStrategy], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScript_ExecutionContext.adoc[FixtureScript.ExecutionContext], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScripts.adoc[FixtureScripts], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScriptsSpecification.adoc[FixtureScriptsSpecification], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScriptsSpecificationProviderAutoConfiguration.adoc[FixtureScriptsSpecificationProviderAutoConfiguration], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScripts_MultipleExecutionStrategy.adoc[FixtureScripts.MultipleExecutionStrategy], xref:refguide:testing:index/fixtures/applib/fixturescripts/FixtureScripts_NonPersistedObjectsStrategy.adoc[FixtureScripts.NonPersistedObjectsStrategy], xref:refguide:testing:index/fixtures/applib/modules/ModuleWithFixtures.adoc[ModuleWithFixtures], xref:refguide:testing:index/fixtures/applib/modules/ModuleWithFixturesService.adoc[ModuleWithFixturesService], xref:refguide:testing:index/fixtures/applib/personas/BuilderScriptAbstract.adoc[BuilderScriptAbstract], xref:refguide:testing:index/fixtures/applib/personas/BuilderScriptWithResult.adoc[BuilderScriptWithResult], xref:refguide:testing:index/fixtures/applib/personas/BuilderScriptWithoutResult.adoc[BuilderScriptWithoutResult], xref:refguide:testing:index/fixtures/applib/personas/Persona.adoc[Persona], xref:refguide:testing:index/fixtures/applib/personas/PersonaWithBuilderScript.adoc[PersonaWithBuilderScript], xref:refguide:testing:index/fixtures/applib/personas/PersonaWithFinder.adoc[PersonaWithFinder], xref:refguide:testing:index/fixtures/applib/services/InitialFixtureScriptsInstaller.adoc[InitialFixtureScriptsInstaller], xref:refguide:testing:index/fixtures/applib/setup/PersonaEnumPersistAll.adoc[PersonaEnumPersistAll], xref:refguide:testing:index/fixtures/applib/teardown/jdo/TeardownFixtureJdoAbstract.adoc[TeardownFixtureJdoAbstract], xref:refguide:testing:index/fixtures/applib/teardown/jpa/TeardownFixtureJpaAbstract.adoc[TeardownFixtureJpaAbstract]
****

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

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

.Dependencies
****
com.h2database:h2:jar:<managed> +
javax.servlet:javax.servlet-api:jar:<managed> +
org.apache.causeway.core:causeway-core-webapp:jar:<managed> +
****

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

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

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

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

|Apache Causeway Tst - Integ Test Support (parent)
[source,yaml]
----
Group: org.apache.causeway.testing
Artifact: causeway-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 Causeway Tst - Integ Test Support (applib)
[source,yaml]
----
Group: org.apache.causeway.testing
Artifact: causeway-testing-integtestsupport-applib
Type: jar
Directory: /testing/integtestsupport/applib
----
|.Dependencies
****
com.approvaltests:approvaltests:jar:<managed> +
com.h2database:h2:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
org.apache.causeway.security:causeway-security-bypass:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fakedata-applib:jar:<managed> +
org.hamcrest:hamcrest-library:jar:<managed> +
org.hsqldb:hsqldb: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/integtestsupport/applib/CausewayIntegrationGwtAbstract.adoc[CausewayIntegrationGwtAbstract], xref:refguide:testing:index/integtestsupport/applib/CausewayIntegrationTestAbstract.adoc[CausewayIntegrationTestAbstract], xref:refguide:testing:index/integtestsupport/applib/CausewayInteractionHandler.adoc[CausewayInteractionHandler], xref:refguide:testing:index/integtestsupport/applib/CausewayModuleTestingIntegTestSupportApplib.adoc[CausewayModuleTestingIntegTestSupportApplib], xref:refguide:testing:index/integtestsupport/applib/ExceptionRecognizerTranslate.adoc[ExceptionRecognizerTranslate], xref:refguide:testing:index/integtestsupport/applib/annotation/InteractAs.adoc[InteractAs], xref:refguide:testing:index/integtestsupport/applib/swagger/SwaggerExporter.adoc[SwaggerExporter], xref:refguide:testing:index/integtestsupport/applib/validate/DomainModelValidator.adoc[DomainModelValidator]
****

|Apache Causeway Tst - Spec/Cucumber (parent)
[source,yaml]
----
Group: org.apache.causeway.testing
Artifact: causeway-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 Causeway Tst - Spec/Cucumber (applib)
[source,yaml]
----
Group: org.apache.causeway.testing
Artifact: causeway-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> +
io.cucumber:messages:jar:22.0.0 +
org.apache.causeway.testing:causeway-testing-fakedata-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
org.junit.jupiter:junit-jupiter-api:jar:<managed> +
****

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

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

|Apache Causeway Tst - Unit Test Support (applib)
[source,yaml]
----
Group: org.apache.causeway.testing
Artifact: causeway-testing-unittestsupport-applib
Type: jar
Directory: /testing/unittestsupport/applib
----
|.Dependencies
****
com.approvaltests:approvaltests:jar:<managed> +
jakarta.xml.ws:jakarta.xml.ws-api:jar:<managed> +
org.apache.causeway.commons:causeway-commons:jar:<managed> +
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.core:causeway-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/CausewayModuleTestingUnitTestSupportApplib.adoc[CausewayModuleTestingUnitTestSupportApplib], xref:refguide:testing:index/unittestsupport/applib/assertions/Asserting.adoc[Asserting], xref:refguide:testing:index/unittestsupport/applib/dom/AbstractApplyToAllContractTest.adoc[AbstractApplyToAllContractTest], xref:refguide:testing:index/unittestsupport/applib/dom/comparable/ComparableContractTest_compareTo.adoc[ComparableContractTest_compareTo], xref:refguide:testing:index/unittestsupport/applib/dom/comparable/ComparableContractTester.adoc[ComparableContractTester], xref:refguide:testing:index/unittestsupport/applib/dom/pojo/PojoTester.adoc[PojoTester], xref:refguide:testing:index/unittestsupport/applib/dom/sortedsets/SortedSetsContractTestAbstract.adoc[SortedSetsContractTestAbstract], xref:refguide:testing:index/unittestsupport/applib/dom/value/ValueTypeContractTestAbstract.adoc[ValueTypeContractTestAbstract], xref:refguide:testing:index/unittestsupport/applib/io/IndentPrinter.adoc[IndentPrinter], xref:refguide:testing:index/unittestsupport/applib/io/NullPrintStream.adoc[NullPrintStream], xref:refguide:testing:index/unittestsupport/applib/jmocking/CausewayActions.adoc[CausewayActions], xref:refguide:testing:index/unittestsupport/applib/jmocking/Imposterisers.adoc[Imposterisers], xref:refguide:testing:index/unittestsupport/applib/jmocking/InjectIntoJMockAction.adoc[InjectIntoJMockAction], xref:refguide:testing:index/unittestsupport/applib/jmocking/JMockActions.adoc[JMockActions], xref:refguide:testing:index/unittestsupport/applib/jmocking/JUnitRuleMockery2.adoc[JUnitRuleMockery2], xref:refguide:testing:index/unittestsupport/applib/jmocking/PostponedAction.adoc[PostponedAction], xref:refguide:testing:index/unittestsupport/applib/matchers/ClassMatchers.adoc[ClassMatchers], xref:refguide:testing:index/unittestsupport/applib/matchers/ComparableMatchers.adoc[ComparableMatchers], xref:refguide:testing:index/unittestsupport/applib/matchers/FileMatchers.adoc[FileMatchers], xref:refguide:testing:index/unittestsupport/applib/matchers/JaxbMatchers.adoc[JaxbMatchers], xref:refguide:testing:index/unittestsupport/applib/matchers/ListMatchers.adoc[ListMatchers], xref:refguide:testing:index/unittestsupport/applib/matchers/StringMatchers.adoc[StringMatchers], xref:refguide:testing:index/unittestsupport/applib/matchers/ThrowableMatchers.adoc[ThrowableMatchers], xref:refguide:testing:index/unittestsupport/applib/util/CollectUtils.adoc[CollectUtils], xref:refguide:testing:index/unittestsupport/applib/util/FileUtils.adoc[FileUtils], xref:refguide:testing:index/unittestsupport/applib/util/InjectUtils.adoc[InjectUtils], xref:refguide:testing:index/unittestsupport/applib/util/ReflectUtils.adoc[ReflectUtils], xref:refguide:testing:index/unittestsupport/applib/util/StringUtils.adoc[StringUtils]
****
|===

== Examples

== Root

[plantuml,Root,svg]
----
@startuml
set separator none
title Root - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Root.ApacheCauseway>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Root.ApacheCausewayAggregator>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Root.ApacheCausewayAntora>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Root.ApacheCausewaySupplementalLegalInfo>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Root>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Root\n<size:10>[Software System]</size>" <<Root>> {
  rectangle "==Apache Causeway (Aggregator)\n<size:10>[Container: packaging: pom]</size>" <<Root.ApacheCausewayAggregator>> as Root.ApacheCausewayAggregator
  rectangle "==Apache Causeway - Antora\n<size:10>[Container: packaging: pom]</size>" <<Root.ApacheCausewayAntora>> as Root.ApacheCausewayAntora
  rectangle "==Apache Causeway\n<size:10>[Container: packaging: pom]</size>" <<Root.ApacheCauseway>> as Root.ApacheCauseway
  rectangle "==Apache Causeway Supplemental - Legal Info\n<size:10>[Container: packaging: jar]</size>" <<Root.ApacheCausewaySupplementalLegalInfo>> as Root.ApacheCausewaySupplementalLegalInfo
}

Root.ApacheCausewayAggregator .[#707070,thickness=2].> Root.ApacheCausewayAntora : "<color:#707070>"
Root.ApacheCausewayAggregator .[#707070,thickness=2].> Root.ApacheCauseway : "<color:#707070>"
@enduml
----
.Projects/Modules (Root)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway (Aggregator)
[source,yaml]
----
Group: org.apache.causeway
Artifact: causeway-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 bom/pom.xml.

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

|Apache Causeway
[source,yaml]
----
Group: org.apache.causeway
Artifact: causeway-bom
Type: pom
Directory: /bom
----
|Apache Causeway Bill of Material (BOM).
Also the parent POM for the core framework and extensions.

|Apache Causeway Supplemental - Legal Info
[source,yaml]
----
Group: org.apache.causeway
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
set separator none
title Commons - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Commons.ApacheCausewayCommons>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Commons>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Commons\n<size:10>[Software System]</size>" <<Commons>> {
  rectangle "==Apache Causeway Commons\n<size:10>[Container: packaging: jar]</size>" <<Commons.ApacheCausewayCommons>> as Commons.ApacheCausewayCommons
}

@enduml
----
.Projects/Modules (Commons)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

.Dependencies
****
com.fasterxml.jackson.core:jackson-databind:jar:<managed> +
com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:<managed> +
com.fasterxml.woodstox:woodstox-core:jar:<managed> +
com.sun.xml.bind:jaxb-impl:jar:<managed> +
jakarta.annotation:jakarta.annotation-api:jar:<managed> +
jakarta.enterprise:jakarta.enterprise.cdi-api:jar:2.0.2 +
jakarta.inject:jakarta.inject-api:jar:<managed> +
jakarta.transaction:jakarta.transaction-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> +
org.hamcrest:hamcrest-library:jar:<managed> +
org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec:jar:<managed> +
org.jdom:jdom2:jar:<managed> +
org.jsoup:jsoup: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.projectlombok:lombok:jar:${lombok.version} +
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/Either.adoc[Either], xref:refguide:commons:index/functional/Railway.adoc[Railway], xref:refguide:commons:index/functional/ThrowingConsumer.adoc[ThrowingConsumer], xref:refguide:commons:index/functional/ThrowingRunnable.adoc[ThrowingRunnable], xref:refguide:commons:index/functional/ThrowingSupplier.adoc[ThrowingSupplier], xref:refguide:commons:index/functional/Try.adoc[Try], xref:refguide:commons:index/io/DataPeer.adoc[DataPeer], xref:refguide:commons:index/io/DataSink.adoc[DataSink], xref:refguide:commons:index/io/DataSource.adoc[DataSource], xref:refguide:commons:index/io/FileUtils.adoc[FileUtils], xref:refguide:commons:index/io/HashUtils.adoc[HashUtils], xref:refguide:commons:index/io/JaxbUtils.adoc[JaxbUtils], xref:refguide:commons:index/io/JsonUtils.adoc[JsonUtils], xref:refguide:commons:index/io/TextUtils.adoc[TextUtils], xref:refguide:commons:index/io/YamlUtils.adoc[YamlUtils], xref:refguide:commons:index/io/ZipUtils.adoc[ZipUtils]
****
|===

== Core

[plantuml,Core,svg]
----
@startuml
set separator none
title Core - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Core.ApacheCausewayApiAppLib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Core.ApacheCausewayApiSchemas>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Core.ApacheCausewayCore>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Core.ApacheCausewayCoreCodeGenByteBuddy>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Core.ApacheCausewayCoreConfiguration>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Core.ApacheCausewayCoreInteraction>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Core.ApacheCausewayCoreInternalTestSupport>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Core.ApacheCausewayCoreMetaModel>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Core.ApacheCausewayCoreRuntime>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Core.ApacheCausewayCoreRuntimeServices>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Core.ApacheCausewayCoreSecurity>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Core.ApacheCausewayCoreTransaction>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Core.ApacheCausewayCoreWebApp>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Core>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Core\n<size:10>[Software System]</size>" <<Core>> {
  rectangle "==Apache Causeway Core - Runtime Services\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreRuntimeServices>> as Core.ApacheCausewayCoreRuntimeServices
  rectangle "==Apache Causeway Core - Security\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreSecurity>> as Core.ApacheCausewayCoreSecurity
  rectangle "==Apache Causeway Core - Transaction\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreTransaction>> as Core.ApacheCausewayCoreTransaction
  rectangle "==Apache Causeway Core - WebApp\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreWebApp>> as Core.ApacheCausewayCoreWebApp
  rectangle "==Apache Causeway Api - Schemas\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayApiSchemas>> as Core.ApacheCausewayApiSchemas
  rectangle "==Apache Causeway Core\n<size:10>[Container: packaging: pom]</size>" <<Core.ApacheCausewayCore>> as Core.ApacheCausewayCore
  rectangle "==Apache Causeway Api - AppLib\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayApiAppLib>> as Core.ApacheCausewayApiAppLib
  rectangle "==Apache Causeway Core - Code Gen (ByteBuddy)\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreCodeGenByteBuddy>> as Core.ApacheCausewayCoreCodeGenByteBuddy
  rectangle "==Apache Causeway Core - Configuration\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreConfiguration>> as Core.ApacheCausewayCoreConfiguration
  rectangle "==Apache Causeway Core - Interaction\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreInteraction>> as Core.ApacheCausewayCoreInteraction
  rectangle "==Apache Causeway Core - Internal Test Support\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreInternalTestSupport>> as Core.ApacheCausewayCoreInternalTestSupport
  rectangle "==Apache Causeway Core - MetaModel\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreMetaModel>> as Core.ApacheCausewayCoreMetaModel
  rectangle "==Apache Causeway Core - Runtime\n<size:10>[Container: packaging: jar]</size>" <<Core.ApacheCausewayCoreRuntime>> as Core.ApacheCausewayCoreRuntime
}

Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayApiAppLib : "<color:#707070>"
Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreCodeGenByteBuddy : "<color:#707070>"
Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreConfiguration : "<color:#707070>"
Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreInteraction : "<color:#707070>"
Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreInternalTestSupport : "<color:#707070>"
Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreMetaModel : "<color:#707070>"
Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreRuntime : "<color:#707070>"
Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreRuntimeServices : "<color:#707070>"
Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreSecurity : "<color:#707070>"
Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreTransaction : "<color:#707070>"
Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayCoreWebApp : "<color:#707070>"
Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayApiSchemas : "<color:#707070>"
@enduml
----
.Projects/Modules (Core)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

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

|Apache Causeway Api - AppLib
[source,yaml]
----
Group: org.apache.causeway.core
Artifact: causeway-applib
Type: jar
Directory: /api/applib
----
|Causeway 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.annotation.Value +
o.a.i.applib.services.clock.ClockService +
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.publishing.log.PageRenderLogger +
o.a.i.applib.services.queryresultscache.QueryResultsCache +
o.a.i.applib.services.session.SessionLogger +
o.a.i.applib.services.sudo.SudoService +
o.a.i.applib.services.user.UserService +
****

.Dependencies
****
jakarta.persistence:jakarta.persistence-api:jar:<managed> +
jakarta.validation:jakarta.validation-api:jar:<managed> +
joda-time:joda-time:jar:<managed> +
org.apache.causeway.commons:causeway-commons:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-schema:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:applib:index/CausewayModuleApplib.adoc[CausewayModuleApplib], xref:refguide:applib:index/CausewayModuleApplibChangeAndExecutionLoggers.adoc[CausewayModuleApplibChangeAndExecutionLoggers], xref:refguide:applib:index/CausewayModuleApplibMixins.adoc[CausewayModuleApplibMixins], xref:refguide:applib:index/Identifier.adoc[Identifier], xref:refguide:applib:index/ViewModel.adoc[ViewModel], 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/DependentDefaultsPolicy.adoc[DependentDefaultsPolicy], 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/Domain_Exclude.adoc[Domain.Exclude], xref:refguide:applib:index/annotation/Domain_Include.adoc[Domain.Include], xref:refguide:applib:index/annotation/Editing.adoc[Editing], xref:refguide:applib:index/annotation/EntityChangeKind.adoc[EntityChangeKind], xref:refguide:applib:index/annotation/HomePage.adoc[HomePage], xref:refguide:applib:index/annotation/InteractionScope.adoc[InteractionScope], xref:refguide:applib:index/annotation/Introspection.adoc[Introspection], xref:refguide:applib:index/annotation/LabelPosition.adoc[LabelPosition], xref:refguide:applib:index/annotation/MemberSupport.adoc[MemberSupport], 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/ObjectLifecycle.adoc[ObjectLifecycle], xref:refguide:applib:index/annotation/ObjectSupport.adoc[ObjectSupport], xref:refguide:applib:index/annotation/Optionality.adoc[Optionality], xref:refguide:applib:index/annotation/Parameter.adoc[Parameter], xref:refguide:applib:index/annotation/ParameterLayout.adoc[ParameterLayout], xref:refguide:applib:index/annotation/ParameterTuple.adoc[ParameterTuple], xref:refguide:applib:index/annotation/PriorityPrecedence.adoc[PriorityPrecedence], 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/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/TimePrecision.adoc[TimePrecision], xref:refguide:applib:index/annotation/TimeZoneTranslation.adoc[TimeZoneTranslation], xref:refguide:applib:index/annotation/Title.adoc[Title], xref:refguide:applib:index/annotation/Value.adoc[Value], xref:refguide:applib:index/annotation/ValueSemantics.adoc[ValueSemantics], 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/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/PersistentEntitiesAdapter.adoc[PersistentEntitiesAdapter], xref:refguide:applib:index/jaxb/PersistentEntityAdapter.adoc[PersistentEntityAdapter], xref:refguide:applib:index/jaxb/PrimitiveJaxbAdapters.adoc[PrimitiveJaxbAdapters], xref:refguide:applib:index/layout/LayoutConstants.adoc[LayoutConstants], 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/bootstrap/BSClearFix.adoc[BSClearFix], xref:refguide:applib:index/layout/grid/bootstrap/BSClearFixHidden.adoc[BSClearFixHidden], xref:refguide:applib:index/layout/grid/bootstrap/BSClearFixVisible.adoc[BSClearFixVisible], xref:refguide:applib:index/layout/grid/bootstrap/BSCol.adoc[BSCol], xref:refguide:applib:index/layout/grid/bootstrap/BSElement.adoc[BSElement], xref:refguide:applib:index/layout/grid/bootstrap/BSElementAbstract.adoc[BSElementAbstract], xref:refguide:applib:index/layout/grid/bootstrap/BSGrid.adoc[BSGrid], xref:refguide:applib:index/layout/grid/bootstrap/BSRow.adoc[BSRow], xref:refguide:applib:index/layout/grid/bootstrap/BSRowContent.adoc[BSRowContent], xref:refguide:applib:index/layout/grid/bootstrap/BSRowContentOwner.adoc[BSRowContentOwner], xref:refguide:applib:index/layout/grid/bootstrap/BSRowOwner.adoc[BSRowOwner], xref:refguide:applib:index/layout/grid/bootstrap/BSTab.adoc[BSTab], xref:refguide:applib:index/layout/grid/bootstrap/BSTabGroup.adoc[BSTabGroup], xref:refguide:applib:index/layout/grid/bootstrap/BSTabGroupOwner.adoc[BSTabGroupOwner], xref:refguide:applib:index/layout/grid/bootstrap/BSTabOwner.adoc[BSTabOwner], xref:refguide:applib:index/layout/grid/bootstrap/HasCssId.adoc[HasCssId], xref:refguide:applib:index/layout/grid/bootstrap/Size.adoc[Size], xref:refguide:applib:index/layout/grid/bootstrap/SizeSpan.adoc[SizeSpan], xref:refguide:applib:index/layout/grid/bootstrap/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/bootstrap/BSMenu.adoc[BSMenu], xref:refguide:applib:index/layout/menubars/bootstrap/BSMenuBar.adoc[BSMenuBar], xref:refguide:applib:index/layout/menubars/bootstrap/BSMenuBars.adoc[BSMenuBars], xref:refguide:applib:index/layout/menubars/bootstrap/BSMenuSection.adoc[BSMenuSection], xref:refguide:applib:index/locale/UserLocale.adoc[UserLocale], 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/Object_downloadLayout.adoc[Object_downloadLayout], xref:refguide:applib:index/mixins/metamodel/Object_downloadMetamodelXml.adoc[Object_downloadMetamodelXml], xref:refguide:applib:index/mixins/metamodel/Object_logicalTypeName.adoc[Object_logicalTypeName], xref:refguide:applib:index/mixins/metamodel/Object_objectIdentifier.adoc[Object_objectIdentifier], 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_ChangeType.adoc[DomainChangeRecord.ChangeType], xref:refguide:applib:index/mixins/system/HasInteractionId.adoc[HasInteractionId], xref:refguide:applib:index/mixins/system/HasInteractionIdAndSequence.adoc[HasInteractionIdAndSequence], xref:refguide:applib:index/mixins/system/HasTarget_openTargetObject.adoc[HasTarget_openTargetObject], 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/appfeatui/ApplicationFeatureMenu.adoc[ApplicationFeatureMenu], xref:refguide:applib:index/services/appfeatui/ApplicationFeatureViewModel.adoc[ApplicationFeatureViewModel], xref:refguide:applib:index/services/appfeatui/ApplicationNamespace.adoc[ApplicationNamespace], xref:refguide:applib:index/services/appfeatui/ApplicationType.adoc[ApplicationType], xref:refguide:applib:index/services/appfeatui/ApplicationTypeAction.adoc[ApplicationTypeAction], xref:refguide:applib:index/services/appfeatui/ApplicationTypeCollection.adoc[ApplicationTypeCollection], xref:refguide:applib:index/services/appfeatui/ApplicationTypeMember.adoc[ApplicationTypeMember], xref:refguide:applib:index/services/appfeatui/ApplicationTypeProperty.adoc[ApplicationTypeProperty], 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/bookmark/HasTarget.adoc[HasTarget], xref:refguide:applib:index/services/bookmark/IdStringifier.adoc[IdStringifier], xref:refguide:applib:index/services/bookmark/Oid.adoc[Oid], 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/CommandExecutorService_InteractionContextPolicy.adoc[CommandExecutorService.InteractionContextPolicy], 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/confview/ConfigurationViewmodel.adoc[ConfigurationViewmodel], 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/exceprecog/RootCauseFinder.adoc[RootCauseFinder], xref:refguide:applib:index/services/factory/FactoryService.adoc[FactoryService], xref:refguide:applib:index/services/grid/GridLoaderService.adoc[GridLoaderService], xref:refguide:applib:index/services/grid/GridMarshallerService.adoc[GridMarshallerService], 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/HasTranslationContext.adoc[HasTranslationContext], xref:refguide:applib:index/services/i18n/LanguageProvider.adoc[LanguageProvider], xref:refguide:applib:index/services/i18n/Mode.adoc[Mode], xref:refguide:applib:index/services/i18n/TranslatableString.adoc[TranslatableString], xref:refguide:applib:index/services/i18n/TranslationContext.adoc[TranslationContext], 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/Interaction.adoc[Interaction], xref:refguide:applib:index/services/iactn/InteractionProvider.adoc[InteractionProvider], xref:refguide:applib:index/services/iactn/PropertyEdit.adoc[PropertyEdit], xref:refguide:applib:index/services/iactnlayer/InteractionContext.adoc[InteractionContext], xref:refguide:applib:index/services/iactnlayer/InteractionLayer.adoc[InteractionLayer], xref:refguide:applib:index/services/iactnlayer/InteractionLayerTracker.adoc[InteractionLayerTracker], xref:refguide:applib:index/services/iactnlayer/InteractionService.adoc[InteractionService], xref:refguide:applib:index/services/inject/ServiceInjector.adoc[ServiceInjector], xref:refguide:applib:index/services/jaxb/CausewaySchemas.adoc[CausewaySchemas], xref:refguide:applib:index/services/jaxb/JaxbService.adoc[JaxbService], xref:refguide:applib:index/services/keyvaluestore/KeyValueSessionStore.adoc[KeyValueSessionStore], xref:refguide:applib:index/services/layout/LayoutExportStyle.adoc[LayoutExportStyle], xref:refguide:applib:index/services/layout/LayoutService.adoc[LayoutService], xref:refguide:applib:index/services/layout/LayoutServiceMenu.adoc[LayoutServiceMenu], xref:refguide:applib:index/services/linking/DeepLinkService.adoc[DeepLinkService], xref:refguide:applib:index/services/locale/LocaleChoiceProvider.adoc[LocaleChoiceProvider], xref:refguide:applib:index/services/marshal/MarshallerService.adoc[MarshallerService], xref:refguide:applib:index/services/menu/MenuBarsLoaderService.adoc[MenuBarsLoaderService], xref:refguide:applib:index/services/menu/MenuBarsMarshallerService.adoc[MenuBarsMarshallerService], 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/placeholder/PlaceholderRenderService.adoc[PlaceholderRenderService], 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/log/PageRenderLogger.adoc[PageRenderLogger], 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/publishing/spi/PageRenderSubscriber.adoc[PageRenderSubscriber], 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/SessionLogger.adoc[SessionLogger], xref:refguide:applib:index/services/session/SessionSubscriber.adoc[SessionSubscriber], xref:refguide:applib:index/services/sitemap/SitemapService.adoc[SitemapService], xref:refguide:applib:index/services/sitemap/SitemapServiceMenu.adoc[SitemapServiceMenu], 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/tablecol/TableColumnVisibilityService.adoc[TableColumnVisibilityService], xref:refguide:applib:index/services/title/TitleService.adoc[TitleService], xref:refguide:applib:index/services/urlencoding/UrlEncodingService.adoc[UrlEncodingService], xref:refguide:applib:index/services/user/ImpersonateMenu.adoc[ImpersonateMenu], xref:refguide:applib:index/services/user/ImpersonateMenuAdvisor.adoc[ImpersonateMenuAdvisor], xref:refguide:applib:index/services/user/ImpersonateStopMenu.adoc[ImpersonateStopMenu], xref:refguide:applib:index/services/user/RoleMemento.adoc[RoleMemento], xref:refguide:applib:index/services/user/UserCurrentSessionTimeZoneHolder.adoc[UserCurrentSessionTimeZoneHolder], xref:refguide:applib:index/services/user/UserMemento.adoc[UserMemento], xref:refguide:applib:index/services/user/UserService.adoc[UserService], 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/userui/UserMenu.adoc[UserMenu], 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/callable/AsyncCallable.adoc[AsyncCallable], 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/CollectionMethodEvent.adoc[CollectionMethodEvent], xref:refguide:applib:index/services/wrapper/events/CollectionUsabilityEvent.adoc[CollectionUsabilityEvent], xref:refguide:applib:index/services/wrapper/events/CollectionVisibilityEvent.adoc[CollectionVisibilityEvent], 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/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/InteractionsDtoUtils.adoc[InteractionsDtoUtils], 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/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], xref:refguide:applib:index/value/semantics/Converter.adoc[Converter], xref:refguide:applib:index/value/semantics/DefaultsProvider.adoc[DefaultsProvider], xref:refguide:applib:index/value/semantics/OrderRelation.adoc[OrderRelation], xref:refguide:applib:index/value/semantics/Parser.adoc[Parser], xref:refguide:applib:index/value/semantics/ParsingException.adoc[ParsingException], xref:refguide:applib:index/value/semantics/Renderer.adoc[Renderer], xref:refguide:applib:index/value/semantics/ValueSemanticsAbstract.adoc[ValueSemanticsAbstract], xref:refguide:applib:index/value/semantics/ValueSemanticsProvider.adoc[ValueSemanticsProvider], xref:refguide:applib:index/value/semantics/ValueSemanticsResolver.adoc[ValueSemanticsResolver]
****

|Apache Causeway Core - Code Gen (ByteBuddy)
[source,yaml]
----
Group: org.apache.causeway.core
Artifact: causeway-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.causeway.commons:causeway-commons:jar:<managed> +
org.objenesis:objenesis:jar:<managed> +
****

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

.Components
****
o.a.i.core.config.applib.RestfulPathProvider +
o.a.i.core.config.beans.CausewayBeanFactoryPostProcessorForSpring +
o.a.i.core.config.beans.CausewayBeanTypeRegistryDefault +
o.a.i.core.config.converters.PatternsConverter +
o.a.i.core.config.datasources.DataSourceIntrospectionService +
o.a.i.core.config.environment.CausewayLocaleInitializer +
o.a.i.core.config.environment.CausewaySystemEnvironment +
o.a.i.core.config.environment.CausewayTimeZoneInitializer +
o.a.i.core.config.validators.PatternOptionalStringConstraintValidator +
o.a.i.core.config.viewer.web.WebAppContextPath +
****

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

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

|Apache Causeway Core - Interaction
[source,yaml]
----
Group: org.apache.causeway.core
Artifact: causeway-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.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
****

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

.Dependencies
****
org.apache.causeway.commons:causeway-commons:jar:<managed> +
org.apache.causeway.core:causeway-core-codegen-bytebuddy:jar:<managed> +
org.datanucleus:javax.jdo: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.jupiter:junit-jupiter-params:jar:<managed> +
org.mockito:mockito-core:jar:<managed> +
org.slf4j:slf4j-api:jar:<managed> +
org.springframework.boot:spring-boot-starter-test:jar:<managed> +
****

|Apache Causeway Core - MetaModel
[source,yaml]
----
Group: org.apache.causeway.core
Artifact: causeway-core-metamodel
Type: jar
Directory: /core/metamodel
----
|.Components
****
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.GridServiceDefault +
o.a.i.core.metamodel.services.grid.bootstrap.GridMarshallerServiceBootstrap +
o.a.i.core.metamodel.services.grid.bootstrap.GridSystemServiceBootstrap +
o.a.i.core.metamodel.services.idstringifier.IdStringifierLookupService +
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.tablecol.TableColumnOrderServiceUsingTxtFile +
o.a.i.core.metamodel.services.title.TitleServiceDefault +
o.a.i.core.metamodel.specloader.ProgrammingModelServiceDefault +
o.a.i.core.metamodel.specloader.SpecificationLoaderDefault +
o.a.i.core.metamodel.valuesemantics.ApplicationFeatureIdValueSemantics +
o.a.i.core.metamodel.valuesemantics.BigDecimalValueSemantics +
o.a.i.core.metamodel.valuesemantics.BigIntegerValueSemantics +
o.a.i.core.metamodel.valuesemantics.BlobValueSemantics +
o.a.i.core.metamodel.valuesemantics.BookmarkValueSemantics +
o.a.i.core.metamodel.valuesemantics.BooleanValueSemantics +
o.a.i.core.metamodel.valuesemantics.BufferedImageValueSemantics +
o.a.i.core.metamodel.valuesemantics.ByteValueSemantics +
o.a.i.core.metamodel.valuesemantics.ChangesDtoValueSemantics +
o.a.i.core.metamodel.valuesemantics.CharacterValueSemantics +
o.a.i.core.metamodel.valuesemantics.ClobValueSemantics +
o.a.i.core.metamodel.valuesemantics.CommandDtoValueSemantics +
o.a.i.core.metamodel.valuesemantics.DoubleValueSemantics +
o.a.i.core.metamodel.valuesemantics.FloatValueSemantics +
o.a.i.core.metamodel.valuesemantics.IdStringifierForSerializable +
o.a.i.core.metamodel.valuesemantics.IntValueSemantics +
o.a.i.core.metamodel.valuesemantics.InteractionDtoValueSemantics +
o.a.i.core.metamodel.valuesemantics.LocalResourcePathValueSemantics +
o.a.i.core.metamodel.valuesemantics.LocaleValueSemantics +
o.a.i.core.metamodel.valuesemantics.LongValueSemantics +
o.a.i.core.metamodel.valuesemantics.MarkupValueSemantics +
o.a.i.core.metamodel.valuesemantics.OidDtoValueSemantics +
o.a.i.core.metamodel.valuesemantics.PasswordValueSemantics +
o.a.i.core.metamodel.valuesemantics.ShortValueSemantics +
o.a.i.core.metamodel.valuesemantics.StringValueSemantics +
o.a.i.core.metamodel.valuesemantics.TreeNodeValueSemantics +
o.a.i.core.metamodel.valuesemantics.URLValueSemantics +
o.a.i.core.metamodel.valuesemantics.UUIDValueSemantics +
o.a.i.core.metamodel.valuesemantics.temporal.LocalDateTimeValueSemantics +
o.a.i.core.metamodel.valuesemantics.temporal.LocalDateValueSemantics +
o.a.i.core.metamodel.valuesemantics.temporal.LocalTimeValueSemantics +
o.a.i.core.metamodel.valuesemantics.temporal.OffsetDateTimeValueSemantics +
o.a.i.core.metamodel.valuesemantics.temporal.OffsetTimeValueSemantics +
o.a.i.core.metamodel.valuesemantics.temporal.ZonedDateTimeValueSemantics +
o.a.i.core.metamodel.valuesemantics.temporal.legacy.JavaSqlDateValueSemantics +
o.a.i.core.metamodel.valuesemantics.temporal.legacy.JavaSqlTimeStampValueSemantics +
o.a.i.core.metamodel.valuesemantics.temporal.legacy.JavaSqlTimeValueSemantics +
o.a.i.core.metamodel.valuesemantics.temporal.legacy.JavaUtilDateValueSemantics +
o.a.i.core.metamodel.valuetypes.ValueSemanticsResolverDefault +
****

.Dependencies
****
io.swagger.core.v3:swagger-core:jar:<managed> +
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.core:causeway-core-config:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-security:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/metamodel/object/ManagedObject.adoc[ManagedObject], 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/metamodel/MetaModelAnnotator.adoc[MetaModelAnnotator], xref:refguide:core:index/metamodel/services/publishing/CommandPublisher.adoc[CommandPublisher], xref:refguide:core:index/metamodel/services/publishing/ExecutionPublisher.adoc[ExecutionPublisher], xref:refguide:core:index/metamodel/services/schema/SchemaValueMarshaller.adoc[SchemaValueMarshaller], xref:refguide:core:index/metamodel/services/tablecol/TableColumnOrderServiceDefault.adoc[TableColumnOrderServiceDefault], xref:refguide:core:index/metamodel/services/tablecol/TableColumnOrderServiceUsingTxtFile.adoc[TableColumnOrderServiceUsingTxtFile]
****

|Apache Causeway Core - Runtime
[source,yaml]
----
Group: org.apache.causeway.core
Artifact: causeway-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.causeway.core:causeway-core-interaction:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
org.apache.causeway.core:causeway-core-transaction:jar:<managed> +
org.apache.causeway.valuetypes:causeway-valuetypes-jodatime-integration:jar:<managed> +
****

|Apache Causeway Core - Runtime Services
[source,yaml]
----
Group: org.apache.causeway.core
Artifact: causeway-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.command.CommandDtoFactoryDefault +
o.a.i.core.runtimeservices.command.CommandExecutorServiceDefault +
o.a.i.core.runtimeservices.command.SchemaValueMarshallerDefault +
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.icons.ObjectIconServiceDefault +
o.a.i.core.runtimeservices.interaction.InteractionDtoFactoryDefault +
o.a.i.core.runtimeservices.jaxb.JaxbServiceDefault +
o.a.i.core.runtimeservices.locale.LanguageProviderDefault +
o.a.i.core.runtimeservices.locale.LocaleChoiceProviderDefault +
o.a.i.core.runtimeservices.menubars.MenuBarsLoaderServiceDefault +
o.a.i.core.runtimeservices.menubars.bootstrap.MenuBarsMarshallerServiceBootstrap +
o.a.i.core.runtimeservices.menubars.bootstrap.MenuBarsServiceBootstrap +
o.a.i.core.runtimeservices.message.MessageServiceDefault +
o.a.i.core.runtimeservices.placeholder.PlaceholderRenderServiceDefault +
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.publish.LifecycleCallbackNotifier +
o.a.i.core.runtimeservices.publish.ObjectLifecyclePublisherDefault +
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.serializing.SerializingAdapterDefault +
o.a.i.core.runtimeservices.session.InteractionIdGeneratorDefault +
o.a.i.core.runtimeservices.session.InteractionServiceDefault +
o.a.i.core.runtimeservices.sitemap.SitemapServiceDefault +
o.a.i.core.runtimeservices.spring.SpringBeansService +
o.a.i.core.runtimeservices.transaction.TransactionServiceSpring +
o.a.i.core.runtimeservices.urlencoding.UrlEncodingServiceWithCompression +
o.a.i.core.runtimeservices.user.ImpersonateMenuAdvisorDefault +
o.a.i.core.runtimeservices.user.UserCurrentSessionTimeZoneHolderDefault +
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
****
jakarta.mail:jakarta.mail-api:jar:<managed> +
org.apache.causeway.core:causeway-core-codegen-bytebuddy:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.hsqldb:hsqldb:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/runtimeservices/publish/LifecycleCallbackNotifier.adoc[LifecycleCallbackNotifier], xref:refguide:core:index/runtimeservices/publish/ObjectLifecyclePublisherDefault.adoc[ObjectLifecyclePublisherDefault], xref:refguide:core:index/runtimeservices/spring/BeanDescriptor.adoc[BeanDescriptor], xref:refguide:core:index/runtimeservices/spring/ContextBeans.adoc[ContextBeans], xref:refguide:core:index/runtimeservices/spring/SpringBeansService.adoc[SpringBeansService], xref:refguide:core:index/runtimeservices/transaction/TransactionServiceSpring.adoc[TransactionServiceSpring], xref:refguide:core:index/runtimeservices/urlencoding/UrlEncodingServiceWithCompression.adoc[UrlEncodingServiceWithCompression], xref:refguide:core:index/runtimeservices/xml/XmlServiceDefault.adoc[XmlServiceDefault]
****

|Apache Causeway Core - Security
[source,yaml]
----
Group: org.apache.causeway.core
Artifact: causeway-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.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.core:causeway-core-config:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
****

.Document Index Entries
****
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], xref:refguide:core:index/security/authorization/manager/AuthorizationManager.adoc[AuthorizationManager], xref:refguide:core:index/security/authorization/manager/AuthorizorChooser.adoc[AuthorizorChooser]
****

|Apache Causeway Core - Transaction
[source,yaml]
----
Group: org.apache.causeway.core
Artifact: causeway-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.events.TimestampService +
****

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

.Document Index Entries
****
xref:refguide:core:index/transaction/changetracking/EntityChangeTracker.adoc[EntityChangeTracker], 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 Causeway Core - WebApp
[source,yaml]
----
Group: org.apache.causeway.core
Artifact: causeway-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.confmenu.ConfigurationViewServiceDefault +
o.a.i.core.webapp.health.HealthIndicatorUsingHealthCheckService +
o.a.i.core.webapp.keyvaluestore.KeyValueStoreUsingHttpSession +
o.a.i.core.webapp.modules.logonlog.WebModuleLogOnExceptionLogger +
o.a.i.core.webapp.modules.templresources.WebModuleTemplateResources +
o.a.i.core.webapp.webappctx.CausewayWebAppContextInitializer +
****

.Dependencies
****
javax.servlet:javax.servlet-api:jar:<managed> +
org.apache.causeway.core:causeway-core-interaction:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.core:causeway-core-transaction:jar:<managed> +
org.springframework:spring-web:jar:<managed> +
org.springframework.boot:spring-boot-actuator:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:core:index/webapp/keyvaluestore/KeyValueStoreUsingHttpSession.adoc[KeyValueStoreUsingHttpSession]
****

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

.Dependencies
****
jakarta.inject:jakarta.inject-api:jar:<managed> +
jakarta.xml.bind:jakarta.xml.bind-api:jar:<managed> +
org.springframework:spring-context:jar:<managed> +
****

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

== Persistence

[plantuml,Persistence,svg]
----
@startuml
set separator none
title Persistence - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Persistence.ApacheCausewayPersistenceCommons>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Persistence>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Persistence\n<size:10>[Software System]</size>" <<Persistence>> {
  rectangle "==Apache Causeway Persistence - Commons\n<size:10>[Container: packaging: jar]</size>" <<Persistence.ApacheCausewayPersistenceCommons>> as Persistence.ApacheCausewayPersistenceCommons
}

@enduml
----
.Projects/Modules (Persistence)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway Persistence - Commons
[source,yaml]
----
Group: org.apache.causeway.persistence
Artifact: causeway-persistence-commons
Type: jar
Directory: /persistence/commons
----
|Apache Causeway Common utilities for persistence stacks

.Components
****
o.a.i.persistence.jpa.integration.changetracking.EntityChangeTrackerDefault +
o.a.i.persistence.jpa.integration.changetracking.EntityChangeTrackerDefault$TransactionSubscriber +
****

.Dependencies
****
org.apache.causeway.commons:causeway-commons:jar:<managed> +
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:persistence:index/jpa/integration/changetracking/EntityChangeTrackerDefault.adoc[EntityChangeTrackerDefault]
****
|===

=== JDO

[plantuml,JDO,svg]
----
@startuml
set separator none
title JDO - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<JDO.ApacheCausewayPersistenceJDO>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<JDO.ApacheCausewayPersistenceJDOSpring>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<JDO.ApacheCausewayPersistenceJDOapplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<JDO.ApacheCausewayPersistenceJDOintegration>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<JDO.ApacheCausewayPersistenceJDOmetamodel>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<JDO.ApacheCausewayPersistenceJDOprovider>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<JDO.ApacheCausewayPersistenceJDOProviderDataNucleus>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<JDO>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "JDO\n<size:10>[Software System]</size>" <<JDO>> {
  rectangle "==Apache Causeway Persistence - JDO\n<size:10>[Container: packaging: pom]</size>" <<JDO.ApacheCausewayPersistenceJDO>> as JDO.ApacheCausewayPersistenceJDO
  rectangle "==Apache Causeway Persistence - JDO (applib)\n<size:10>[Container: packaging: jar]</size>" <<JDO.ApacheCausewayPersistenceJDOapplib>> as JDO.ApacheCausewayPersistenceJDOapplib
  rectangle "==Apache Causeway Persistence - JDO Provider (DataNucleus)\n<size:10>[Container: packaging: jar]</size>" <<JDO.ApacheCausewayPersistenceJDOProviderDataNucleus>> as JDO.ApacheCausewayPersistenceJDOProviderDataNucleus
  rectangle "==Apache Causeway Persistence - JDO (integration)\n<size:10>[Container: packaging: jar]</size>" <<JDO.ApacheCausewayPersistenceJDOintegration>> as JDO.ApacheCausewayPersistenceJDOintegration
  rectangle "==Apache Causeway Persistence - JDO (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<JDO.ApacheCausewayPersistenceJDOmetamodel>> as JDO.ApacheCausewayPersistenceJDOmetamodel
  rectangle "==Apache Causeway Persistence - JDO (provider)\n<size:10>[Container: packaging: jar]</size>" <<JDO.ApacheCausewayPersistenceJDOprovider>> as JDO.ApacheCausewayPersistenceJDOprovider
  rectangle "==Apache Causeway Persistence - JDO (Spring)\n<size:10>[Container: packaging: jar]</size>" <<JDO.ApacheCausewayPersistenceJDOSpring>> as JDO.ApacheCausewayPersistenceJDOSpring
}

JDO.ApacheCausewayPersistenceJDO .[#707070,thickness=2].> JDO.ApacheCausewayPersistenceJDOProviderDataNucleus : "<color:#707070>"
JDO.ApacheCausewayPersistenceJDO .[#707070,thickness=2].> JDO.ApacheCausewayPersistenceJDOintegration : "<color:#707070>"
JDO.ApacheCausewayPersistenceJDO .[#707070,thickness=2].> JDO.ApacheCausewayPersistenceJDOmetamodel : "<color:#707070>"
JDO.ApacheCausewayPersistenceJDO .[#707070,thickness=2].> JDO.ApacheCausewayPersistenceJDOprovider : "<color:#707070>"
JDO.ApacheCausewayPersistenceJDO .[#707070,thickness=2].> JDO.ApacheCausewayPersistenceJDOSpring : "<color:#707070>"
JDO.ApacheCausewayPersistenceJDO .[#707070,thickness=2].> JDO.ApacheCausewayPersistenceJDOapplib : "<color:#707070>"
@enduml
----
.Projects/Modules (JDO)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

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

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

.Document Index Entries
****
xref:refguide:persistence:index/jdo/applib/CausewayModulePersistenceJdoApplib.adoc[CausewayModulePersistenceJdoApplib], xref:refguide:persistence:index/jdo/applib/services/JdoSupportService.adoc[JdoSupportService], xref:refguide:persistence:index/jdo/applib/types/AddressLine.adoc[AddressLine], xref:refguide:persistence:index/jdo/applib/types/Description.adoc[Description], xref:refguide:persistence:index/jdo/applib/types/Email.adoc[Email], xref:refguide:persistence:index/jdo/applib/types/Fqcn.adoc[Fqcn], xref:refguide:persistence:index/jdo/applib/types/LogicalTypeName.adoc[LogicalTypeName], xref:refguide:persistence:index/jdo/applib/types/Money.adoc[Money], xref:refguide:persistence:index/jdo/applib/types/Name.adoc[Name], xref:refguide:persistence:index/jdo/applib/types/Notes.adoc[Notes], xref:refguide:persistence:index/jdo/applib/types/ObjectIdentifier.adoc[ObjectIdentifier], xref:refguide:persistence:index/jdo/applib/types/Percentage.adoc[Percentage], xref:refguide:persistence:index/jdo/applib/types/PhoneNumber.adoc[PhoneNumber], xref:refguide:persistence:index/jdo/applib/types/PostalCode.adoc[PostalCode], xref:refguide:persistence:index/jdo/applib/types/ProperName.adoc[ProperName], xref:refguide:persistence:index/jdo/applib/types/Reference.adoc[Reference], xref:refguide:persistence:index/jdo/applib/types/Title.adoc[Title], xref:refguide:persistence:index/jdo/applib/types/UrlTemplate.adoc[UrlTemplate], xref:refguide:persistence:index/jdo/applib/types/Username.adoc[Username]
****

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

.Components
****
o.a.i.persistence.jdo.datanucleus.entities.DnEntityStateProvider +
o.a.i.persistence.jdo.datanucleus.jdosupport.JdoSupportServiceDefault +
o.a.i.persistence.jdo.datanucleus.valuetypes.DnByteIdValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.DnCharIdValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.DnDatastoreIdImplValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.DnDatastoreUniqueLongIdValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.DnIntIdValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.DnLongIdValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.DnObjectIdValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.DnScoidValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.DnShortIdValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.DnStringIdValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.JdoByteIdentityValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.JdoCharIdentityValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.JdoDatastoreIdValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.JdoIntIdentityValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.JdoLongIdentityValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.JdoObjectIdentityValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.JdoShortIdentityValueSemantics +
o.a.i.persistence.jdo.datanucleus.valuetypes.JdoStringIdentityValueSemantics +
****

.Dependencies
****
com.h2database:h2:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-integration:jar:<managed> +
org.apache.causeway.persistence:causeway-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/CausewayModulePersistenceJdoDatanucleus.adoc[CausewayModulePersistenceJdoDatanucleus], xref:refguide:persistence:index/jdo/datanucleus/CausewayModulePersistenceJdoDatanucleusMixins.adoc[CausewayModulePersistenceJdoDatanucleusMixins], 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_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/CausewayBookmarkConverter.adoc[CausewayBookmarkConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/applib/CausewayLocalResourcePathConverter.adoc[CausewayLocalResourcePathConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/applib/CausewayMarkupConverter.adoc[CausewayMarkupConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/applib/CausewayPasswordConverter.adoc[CausewayPasswordConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/image/JavaAwtBufferedImageByteArrayConverter.adoc[JavaAwtBufferedImageByteArrayConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/schema/v2/CausewayChangesDtoConverter.adoc[CausewayChangesDtoConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/schema/v2/CausewayCommandDtoConverter.adoc[CausewayCommandDtoConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/schema/v2/CausewayInteractionDtoConverter.adoc[CausewayInteractionDtoConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/schema/v2/CausewayOidDtoConverter.adoc[CausewayOidDtoConverter], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/time/OffsetDateTimeConverterForJdo.adoc[OffsetDateTimeConverterForJdo], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/time/OffsetTimeConverterForJdo.adoc[OffsetTimeConverterForJdo], xref:refguide:persistence:index/jdo/datanucleus/typeconverters/time/ZonedDateTimeConverterForJdo.adoc[ZonedDateTimeConverterForJdo], xref:refguide:persistence:index/jdo/datanucleus/valuemappings/ByteArrayBlobRdbmsMapping.adoc[ByteArrayBlobRdbmsMapping], xref:refguide:persistence:index/jdo/datanucleus/valuemappings/CausewayBlobMapping.adoc[CausewayBlobMapping], xref:refguide:persistence:index/jdo/datanucleus/valuemappings/CausewayClobMapping.adoc[CausewayClobMapping]
****

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

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

|Apache Causeway Persistence - JDO (metamodel)
[source,yaml]
----
Group: org.apache.causeway.persistence
Artifact: causeway-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.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-applib:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-provider:jar:<managed> +
****

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

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

|Apache Causeway Persistence - JDO (Spring)
[source,yaml]
----
Group: org.apache.causeway.persistence
Artifact: causeway-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.causeway.commons:causeway-commons:jar:<managed> +
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.core:causeway-core-config:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-applib:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-provider:jar:<managed> +
org.springframework:spring-jdbc:jar:<managed> +
org.springframework:spring-web:jar:<managed> +
****
|===

=== JPA

[plantuml,JPA,svg]
----
@startuml
set separator none
title JPA - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<JPA.ApacheCausewayPersistenceJPA>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<JPA.ApacheCausewayPersistenceJPAapplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<JPA.ApacheCausewayPersistenceJPAintegration>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<JPA.ApacheCausewayPersistenceJPAmetamodel>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<JPA.ApacheCausewayPersistenceJPAEclipseLink>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<JPA>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "JPA\n<size:10>[Software System]</size>" <<JPA>> {
  rectangle "==Apache Causeway Persistence - JPA\n<size:10>[Container: packaging: pom]</size>" <<JPA.ApacheCausewayPersistenceJPA>> as JPA.ApacheCausewayPersistenceJPA
  rectangle "==Apache Causeway Persistence - JPA (applib)\n<size:10>[Container: packaging: jar]</size>" <<JPA.ApacheCausewayPersistenceJPAapplib>> as JPA.ApacheCausewayPersistenceJPAapplib
  rectangle "==Apache Causeway Persistence - JPA EclipseLink\n<size:10>[Container: packaging: jar]</size>" <<JPA.ApacheCausewayPersistenceJPAEclipseLink>> as JPA.ApacheCausewayPersistenceJPAEclipseLink
  rectangle "==Apache Causeway Persistence - JPA (integration)\n<size:10>[Container: packaging: jar]</size>" <<JPA.ApacheCausewayPersistenceJPAintegration>> as JPA.ApacheCausewayPersistenceJPAintegration
  rectangle "==Apache Causeway Persistence - JPA (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<JPA.ApacheCausewayPersistenceJPAmetamodel>> as JPA.ApacheCausewayPersistenceJPAmetamodel
}

JPA.ApacheCausewayPersistenceJPA .[#707070,thickness=2].> JPA.ApacheCausewayPersistenceJPAmetamodel : "<color:#707070>"
JPA.ApacheCausewayPersistenceJPA .[#707070,thickness=2].> JPA.ApacheCausewayPersistenceJPAapplib : "<color:#707070>"
JPA.ApacheCausewayPersistenceJPA .[#707070,thickness=2].> JPA.ApacheCausewayPersistenceJPAEclipseLink : "<color:#707070>"
JPA.ApacheCausewayPersistenceJPA .[#707070,thickness=2].> JPA.ApacheCausewayPersistenceJPAintegration : "<color:#707070>"
@enduml
----
.Projects/Modules (JPA)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

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

.Dependencies
****
org.apache.causeway.commons:causeway-commons:jar:<managed> +
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.core:causeway-core-transaction:jar:<managed> +
org.springframework.data:spring-data-jpa:jar:<managed> +
****

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

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

.Dependencies
****
jakarta.el:jakarta.el-api:jar:3.0.3 +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jpa-integration:jar:<managed> +
org.eclipse.persistence:org.eclipse.persistence.jpa:jar:2.7.12 +
org.springframework.boot:spring-boot-starter-data-jpa:jar:<managed> +
****

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

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

.Components
****
o.a.i.persistence.jpa.integration.entity.JpaEntityIntegration +
****

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

.Document Index Entries
****
xref:refguide:persistence:index/jpa/integration/typeconverters/applib/CausewayBookmarkConverter.adoc[CausewayBookmarkConverter], xref:refguide:persistence:index/jpa/integration/typeconverters/applib/CausewayLocalResourcePathConverter.adoc[CausewayLocalResourcePathConverter], xref:refguide:persistence:index/jpa/integration/typeconverters/applib/CausewayMarkupConverter.adoc[CausewayMarkupConverter], xref:refguide:persistence:index/jpa/integration/typeconverters/applib/CausewayPasswordConverter.adoc[CausewayPasswordConverter], xref:refguide:persistence:index/jpa/integration/typeconverters/java/awt/JavaAwtBufferedImageByteArrayConverter.adoc[JavaAwtBufferedImageByteArrayConverter], xref:refguide:persistence:index/jpa/integration/typeconverters/java/time/OffsetDateTimeConverterForJpa.adoc[OffsetDateTimeConverterForJpa], xref:refguide:persistence:index/jpa/integration/typeconverters/java/time/OffsetTimeConverterForJpa.adoc[OffsetTimeConverterForJpa], xref:refguide:persistence:index/jpa/integration/typeconverters/java/time/ZonedDateTimeConverterForJpa.adoc[ZonedDateTimeConverterForJpa], xref:refguide:persistence:index/jpa/integration/typeconverters/java/util/JavaUtilUuidConverter.adoc[JavaUtilUuidConverter], xref:refguide:persistence:index/jpa/integration/typeconverters/schema/v2/CausewayChangesDtoConverter.adoc[CausewayChangesDtoConverter], xref:refguide:persistence:index/jpa/integration/typeconverters/schema/v2/CausewayCommandDtoConverter.adoc[CausewayCommandDtoConverter], xref:refguide:persistence:index/jpa/integration/typeconverters/schema/v2/CausewayInteractionDtoConverter.adoc[CausewayInteractionDtoConverter], xref:refguide:persistence:index/jpa/integration/typeconverters/schema/v2/CausewayOidDtoConverter.adoc[CausewayOidDtoConverter]
****

|Apache Causeway Persistence - JPA (metamodel)
[source,yaml]
----
Group: org.apache.causeway.persistence
Artifact: causeway-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.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jpa-applib:jar:<managed> +
****
|===

== Security

=== Bypass

[plantuml,Bypass,svg]
----
@startuml
set separator none
title Bypass - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Bypass.ApacheCausewaySecurityBypass>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Bypass>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Bypass\n<size:10>[Software System]</size>" <<Bypass>> {
  rectangle "==Apache Causeway Security - Bypass\n<size:10>[Container: packaging: jar]</size>" <<Bypass.ApacheCausewaySecurityBypass>> as Bypass.ApacheCausewaySecurityBypass
}

@enduml
----
.Projects/Modules (Bypass)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway Security - Bypass
[source,yaml]
----
Group: org.apache.causeway.security
Artifact: causeway-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.causeway.core:causeway-core-runtimeservices:jar:<managed> +
****

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

=== Keycloak

[plantuml,Keycloak,svg]
----
@startuml
set separator none
title Keycloak - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Keycloak.ApacheCausewaySecurityKeycloak>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Keycloak>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Keycloak\n<size:10>[Software System]</size>" <<Keycloak>> {
  rectangle "==Apache Causeway Security - Keycloak\n<size:10>[Container: packaging: jar]</size>" <<Keycloak.ApacheCausewaySecurityKeycloak>> as Keycloak.ApacheCausewaySecurityKeycloak
}

@enduml
----
.Projects/Modules (Keycloak)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

.Components
****
o.a.i.security.keycloak.handler.LogoutHandlerForKeycloak +
****

.Dependencies
****
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
org.apache.causeway.core:causeway-core-webapp:jar:<managed> +
org.apache.causeway.security:causeway-security-spring:jar:<managed> +
org.springframework.boot:spring-boot-starter-security:jar:<managed> +
org.springframework.security:spring-security-oauth2-client:jar:<managed> +
org.springframework.security:spring-security-oauth2-core:jar:<managed> +
org.springframework.security:spring-security-oauth2-jose:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:security:index/keycloak/CausewayModuleSecurityKeycloak.adoc[CausewayModuleSecurityKeycloak]
****
|===

=== Shiro

[plantuml,Shiro,svg]
----
@startuml
set separator none
title Shiro - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Shiro.ApacheCausewaySecurityShiro>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Shiro>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Shiro\n<size:10>[Software System]</size>" <<Shiro>> {
  rectangle "==Apache Causeway Security - Shiro\n<size:10>[Container: packaging: jar]</size>" <<Shiro.ApacheCausewaySecurityShiro>> as Shiro.ApacheCausewaySecurityShiro
}

@enduml
----
.Projects/Modules (Shiro)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway Security - Shiro
[source,yaml]
----
Group: org.apache.causeway.security
Artifact: causeway-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.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
org.apache.causeway.core:causeway-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/CausewayModuleSecurityShiro.adoc[CausewayModuleSecurityShiro], xref:refguide:security:index/shiro/authentication/AuthenticatorShiro.adoc[AuthenticatorShiro], xref:refguide:security:index/shiro/authorization/AuthorizorShiro.adoc[AuthorizorShiro], xref:refguide:security:index/shiro/authorization/CausewayPermission.adoc[CausewayPermission], xref:refguide:security:index/shiro/authorization/CausewayPermissionResolver.adoc[CausewayPermissionResolver], xref:refguide:security:index/shiro/webmodule/WebModuleShiro.adoc[WebModuleShiro]
****
|===

=== Spring

[plantuml,Spring,svg]
----
@startuml
set separator none
title Spring - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Spring.ApacheCausewaySecuritySpring>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Spring>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Spring\n<size:10>[Software System]</size>" <<Spring>> {
  rectangle "==Apache Causeway Security - Spring\n<size:10>[Container: packaging: jar]</size>" <<Spring.ApacheCausewaySecuritySpring>> as Spring.ApacheCausewaySecuritySpring
}

@enduml
----
.Projects/Modules (Spring)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

.Components
****
o.a.i.security.spring.authconverters.AuthenticationConverterOfAuthenticatedPrincipal +
o.a.i.security.spring.authconverters.AuthenticationConverterOfStringPrincipal +
o.a.i.security.spring.authconverters.AuthenticationConverterOfUserDetailsPrincipal +
o.a.i.security.spring.authentication.AuthenticatorSpring +
o.a.i.security.spring.webmodule.WebModuleSpringSecurity +
****

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

.Document Index Entries
****
xref:refguide:security:index/spring/CausewayModuleSecuritySpring.adoc[CausewayModuleSecuritySpring], xref:refguide:security:index/spring/authconverters/AuthenticationConverter.adoc[AuthenticationConverter], 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]
****
|===

== Viewer

=== Common

[plantuml,Common,svg]
----
@startuml
set separator none
title Common - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Common.ApacheCausewayCommonsPrism>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Common.ApacheCausewayViewerCommons>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Common.ApacheCausewayViewerCommonsApplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Common.ApacheCausewayViewerCommonsModel>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Common.ApacheCausewayViewerCommonsServices>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Common>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Common\n<size:10>[Software System]</size>" <<Common>> {
  rectangle "==Apache Causeway Viewer - Commons\n<size:10>[Container: packaging: pom]</size>" <<Common.ApacheCausewayViewerCommons>> as Common.ApacheCausewayViewerCommons
  rectangle "==Apache Causeway Viewer - Commons Applib\n<size:10>[Container: packaging: jar]</size>" <<Common.ApacheCausewayViewerCommonsApplib>> as Common.ApacheCausewayViewerCommonsApplib
  rectangle "==Apache Causeway Viewer - Commons Model\n<size:10>[Container: packaging: jar]</size>" <<Common.ApacheCausewayViewerCommonsModel>> as Common.ApacheCausewayViewerCommonsModel
  rectangle "==Apache Causeway Commons - Prism\n<size:10>[Container: packaging: jar]</size>" <<Common.ApacheCausewayCommonsPrism>> as Common.ApacheCausewayCommonsPrism
  rectangle "==Apache Causeway Viewer - Commons Services\n<size:10>[Container: packaging: jar]</size>" <<Common.ApacheCausewayViewerCommonsServices>> as Common.ApacheCausewayViewerCommonsServices
}

Common.ApacheCausewayViewerCommons .[#707070,thickness=2].> Common.ApacheCausewayViewerCommonsServices : "<color:#707070>"
Common.ApacheCausewayViewerCommons .[#707070,thickness=2].> Common.ApacheCausewayViewerCommonsApplib : "<color:#707070>"
Common.ApacheCausewayViewerCommons .[#707070,thickness=2].> Common.ApacheCausewayViewerCommonsModel : "<color:#707070>"
Common.ApacheCausewayViewerCommons .[#707070,thickness=2].> Common.ApacheCausewayCommonsPrism : "<color:#707070>"
@enduml
----
.Projects/Modules (Common)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway Viewer - Commons
[source,yaml]
----
Group: org.apache.causeway.viewer
Artifact: causeway-viewer-commons
Type: pom
Directory: /viewers/commons
----
|

|Apache Causeway Viewer - Commons Applib
[source,yaml]
----
Group: org.apache.causeway.viewer
Artifact: causeway-viewer-commons-applib
Type: jar
Directory: /viewers/commons/applib
----
|.Dependencies
****
org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/commons/applib/mixins/Object_impersonate.adoc[Object_impersonate], xref:refguide:viewer:index/commons/applib/mixins/Object_impersonateWithRoles.adoc[Object_impersonateWithRoles], xref:refguide:viewer:index/commons/applib/services/branding/BrandingUiService.adoc[BrandingUiService], xref:refguide:viewer:index/commons/applib/services/header/HeaderUiService.adoc[HeaderUiService], xref:refguide:viewer:index/commons/applib/services/menu/MenuUiService.adoc[MenuUiService], xref:refguide:viewer:index/commons/applib/services/userprof/UserProfileUiModel.adoc[UserProfileUiModel], xref:refguide:viewer:index/commons/applib/services/userprof/UserProfileUiService.adoc[UserProfileUiService]
****

|Apache Causeway Viewer - Commons Model
[source,yaml]
----
Group: org.apache.causeway.viewer
Artifact: causeway-viewer-commons-model
Type: jar
Directory: /viewers/commons/model
----
|.Dependencies
****
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-commons-applib:jar:<managed> +
org.webjars:font-awesome:jar:6.4.0 +
****

|Apache Causeway Commons - Prism
[source,yaml]
----
Group: org.apache.causeway.viewer
Artifact: causeway-viewer-commons-prism
Type: jar
Directory: /viewers/commons/prism
----
|Client Side Syntax Highlighting

.Dependencies
****
org.webjars.bowergithub.prismjs:prism:jar:1.29.0 +
****

|Apache Causeway Viewer - Commons Services
[source,yaml]
----
Group: org.apache.causeway.viewer
Artifact: causeway-viewer-commons-services
Type: jar
Directory: /viewers/commons/services
----
|.Components
****
o.a.i.viewer.commons.services.branding.BrandingUiServiceDefault +
o.a.i.viewer.commons.services.header.HeaderUiServiceDefault +
o.a.i.viewer.commons.services.i8n.TranslationsResolverDefault +
o.a.i.viewer.commons.services.menu.MenuUiServiceDefault +
o.a.i.viewer.commons.services.userprof.UserProfileUiServiceDefault +
****

.Dependencies
****
javax.servlet:javax.servlet-api:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-commons-model:jar:<managed> +
****
|===

=== Restful Objects

[plantuml,Restful Objects,svg]
----
@startuml
set separator none
title Restful Objects - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<RestfulObjects.ApacheCausewayViewerRO>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RestfulObjects.ApacheCausewayViewerROAppLib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RestfulObjects.ApacheCausewayViewerROClient>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RestfulObjects.ApacheCausewayViewerROJAXRSResteasy>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RestfulObjects.ApacheCausewayViewerRORendering>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RestfulObjects.ApacheCausewayViewerROTesting>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RestfulObjects.ApacheCausewayViewerROViewer>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RestfulObjects>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Restful Objects\n<size:10>[Software System]</size>" <<RestfulObjects>> {
  rectangle "==Apache Causeway Viewer - RO\n<size:10>[Container: packaging: pom]</size>" <<RestfulObjects.ApacheCausewayViewerRO>> as RestfulObjects.ApacheCausewayViewerRO
  rectangle "==Apache Causeway Viewer - RO (AppLib)\n<size:10>[Container: packaging: jar]</size>" <<RestfulObjects.ApacheCausewayViewerROAppLib>> as RestfulObjects.ApacheCausewayViewerROAppLib
  rectangle "==Apache Causeway Viewer - RO (Client)\n<size:10>[Container: packaging: jar]</size>" <<RestfulObjects.ApacheCausewayViewerROClient>> as RestfulObjects.ApacheCausewayViewerROClient
  rectangle "==Apache Causeway Viewer - RO (JAX-RS Resteasy)\n<size:10>[Container: packaging: jar]</size>" <<RestfulObjects.ApacheCausewayViewerROJAXRSResteasy>> as RestfulObjects.ApacheCausewayViewerROJAXRSResteasy
  rectangle "==Apache Causeway Viewer - RO (Rendering)\n<size:10>[Container: packaging: jar]</size>" <<RestfulObjects.ApacheCausewayViewerRORendering>> as RestfulObjects.ApacheCausewayViewerRORendering
  rectangle "==Apache Causeway Viewer - RO (Testing)\n<size:10>[Container: packaging: jar]</size>" <<RestfulObjects.ApacheCausewayViewerROTesting>> as RestfulObjects.ApacheCausewayViewerROTesting
  rectangle "==Apache Causeway Viewer - RO (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<RestfulObjects.ApacheCausewayViewerROViewer>> as RestfulObjects.ApacheCausewayViewerROViewer
}

RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.ApacheCausewayViewerROClient : "<color:#707070>"
RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.ApacheCausewayViewerROJAXRSResteasy : "<color:#707070>"
RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.ApacheCausewayViewerRORendering : "<color:#707070>"
RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.ApacheCausewayViewerROTesting : "<color:#707070>"
RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.ApacheCausewayViewerROViewer : "<color:#707070>"
RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.ApacheCausewayViewerROAppLib : "<color:#707070>"
@enduml
----
.Projects/Modules (Restful Objects)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

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

.Document Index Entries
****
xref:refguide:viewer:index/restfulobjects/applib/CausewayModuleViewerRestfulObjectsApplib.adoc[CausewayModuleViewerRestfulObjectsApplib], 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 Causeway Viewer - RO (Client)
[source,yaml]
----
Group: org.apache.causeway.viewer
Artifact: causeway-viewer-restfulobjects-client
Type: jar
Directory: /viewers/restfulobjects/client
----
|.Dependencies
****
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-restfulobjects-applib:jar:<managed> +
org.springframework:spring-context:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/restfulobjects/client/ActionParameterListBuilder.adoc[ActionParameterListBuilder], xref:refguide:viewer:index/restfulobjects/client/RestfulClient.adoc[RestfulClient], xref:refguide:viewer:index/restfulobjects/client/RestfulClientConfig.adoc[RestfulClientConfig], xref:refguide:viewer:index/restfulobjects/client/auth/BasicAuthFilter.adoc[BasicAuthFilter], xref:refguide:viewer:index/restfulobjects/client/log/ClientConversationFilter.adoc[ClientConversationFilter], xref:refguide:viewer:index/restfulobjects/client/log/ClientConversationLogger.adoc[ClientConversationLogger]
****

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

.Components
****
o.a.i.viewer.restfulobjects.jaxrsresteasy.conneg.RestfulObjectsJaxbWriterForXml +
o.a.i.viewer.restfulobjects.jaxrsresteasy.webmodule.WebModuleJaxrsResteasy +
****

.Dependencies
****
org.apache.causeway.viewer:causeway-viewer-restfulobjects-rendering:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-restfulobjects-testing:jar:<managed> +
org.apache.causeway.viewer:causeway-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/jaxrsresteasy/CausewayModuleViewerRestfulObjectsJaxrsResteasy.adoc[CausewayModuleViewerRestfulObjectsJaxrsResteasy], xref:refguide:viewer:index/restfulobjects/jaxrsresteasy/conneg/RestfulObjectsJaxbWriterForXml.adoc[RestfulObjectsJaxbWriterForXml], xref:refguide:viewer:index/restfulobjects/jaxrsresteasy/webmodule/WebModuleJaxrsResteasy.adoc[WebModuleJaxrsResteasy]
****

|Apache Causeway Viewer - RO (Rendering)
[source,yaml]
----
Group: org.apache.causeway.viewer
Artifact: causeway-viewer-restfulobjects-rendering
Type: jar
Directory: /viewers/restfulobjects/rendering
----
|.Components
****
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.ContentNegotiationServiceOrgApacheCausewayV2 +
o.a.i.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceOrgApacheIsisV1 +
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.OpenApiSpecGenerator +
o.a.i.viewer.restfulobjects.rendering.service.swagger.internal.TaggerDefault +
o.a.i.viewer.restfulobjects.rendering.service.swagger.internal.ValueSchemaFactoryDefault +
o.a.i.viewer.restfulobjects.rendering.service.valuerender.JsonValueEncoderServiceDefault +
****

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

.Document Index Entries
****
xref:refguide:viewer:index/restfulobjects/rendering/CausewayModuleRestfulObjectsRendering.adoc[CausewayModuleRestfulObjectsRendering], xref:refguide:viewer:index/restfulobjects/rendering/IResourceContext.adoc[IResourceContext], 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/ContentNegotiationServiceOrgApacheCausewayV2.adoc[ContentNegotiationServiceOrgApacheCausewayV2], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.adoc[ContentNegotiationServiceOrgApacheIsisV1], xref:refguide:viewer:index/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.adoc[ContentNegotiationServiceXRoDomainType], xref:refguide:viewer:index/restfulobjects/rendering/service/swagger/SwaggerServiceMenu.adoc[SwaggerServiceMenu], xref:refguide:viewer:index/restfulobjects/rendering/service/valuerender/JsonValueEncoderService.adoc[JsonValueEncoderService]
****

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

|Apache Causeway Viewer - RO (Viewer)
[source,yaml]
----
Group: org.apache.causeway.viewer
Artifact: causeway-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.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-webapp:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-commons-services:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-restfulobjects-rendering:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/restfulobjects/viewer/CausewayModuleViewerRestfulObjectsViewer.adoc[CausewayModuleViewerRestfulObjectsViewer], xref:refguide:viewer:index/restfulobjects/viewer/webmodule/auth/AuthenticationStrategy.adoc[AuthenticationStrategy], xref:refguide:viewer:index/restfulobjects/viewer/webmodule/auth/AuthenticationStrategyAbstract.adoc[AuthenticationStrategyAbstract], xref:refguide:viewer:index/restfulobjects/viewer/webmodule/auth/AuthenticationStrategyBasicAuth.adoc[AuthenticationStrategyBasicAuth], xref:refguide:viewer:index/restfulobjects/viewer/webmodule/auth/AuthenticationStrategyDefault.adoc[AuthenticationStrategyDefault]
****
|===

=== Wicket

[plantuml,Wicket,svg]
----
@startuml
set separator none
title Wicket - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Wicket.ApacheCausewayViewerWicket>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Wicket.ApacheCausewayViewerWicketApplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Wicket.ApacheCausewayViewerWicketModel>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Wicket.ApacheCausewayViewerWicketUIComponents>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Wicket.ApacheCausewayViewerWicketUITest>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Wicket.ApacheCausewayViewerWicketViewer>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Wicket>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Wicket\n<size:10>[Software System]</size>" <<Wicket>> {
  rectangle "==Apache Causeway Viewer - Wicket\n<size:10>[Container: packaging: pom]</size>" <<Wicket.ApacheCausewayViewerWicket>> as Wicket.ApacheCausewayViewerWicket
  rectangle "==Apache Causeway Viewer - Wicket (Applib)\n<size:10>[Container: packaging: jar]</size>" <<Wicket.ApacheCausewayViewerWicketApplib>> as Wicket.ApacheCausewayViewerWicketApplib
  rectangle "==Apache Causeway Viewer - Wicket (Model)\n<size:10>[Container: packaging: jar]</size>" <<Wicket.ApacheCausewayViewerWicketModel>> as Wicket.ApacheCausewayViewerWicketModel
  rectangle "==Apache Causeway Viewer - Wicket (UI Components)\n<size:10>[Container: packaging: jar]</size>" <<Wicket.ApacheCausewayViewerWicketUIComponents>> as Wicket.ApacheCausewayViewerWicketUIComponents
  rectangle "==Apache Causeway Viewer - Wicket (UI Test)\n<size:10>[Container: packaging: jar]</size>" <<Wicket.ApacheCausewayViewerWicketUITest>> as Wicket.ApacheCausewayViewerWicketUITest
  rectangle "==Apache Causeway Viewer - Wicket (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<Wicket.ApacheCausewayViewerWicketViewer>> as Wicket.ApacheCausewayViewerWicketViewer
}

Wicket.ApacheCausewayViewerWicket .[#707070,thickness=2].> Wicket.ApacheCausewayViewerWicketUIComponents : "<color:#707070>"
Wicket.ApacheCausewayViewerWicket .[#707070,thickness=2].> Wicket.ApacheCausewayViewerWicketUITest : "<color:#707070>"
Wicket.ApacheCausewayViewerWicket .[#707070,thickness=2].> Wicket.ApacheCausewayViewerWicketViewer : "<color:#707070>"
Wicket.ApacheCausewayViewerWicket .[#707070,thickness=2].> Wicket.ApacheCausewayViewerWicketApplib : "<color:#707070>"
Wicket.ApacheCausewayViewerWicket .[#707070,thickness=2].> Wicket.ApacheCausewayViewerWicketModel : "<color:#707070>"
@enduml
----
.Projects/Modules (Wicket)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway Viewer - Wicket
[source,yaml]
----
Group: org.apache.causeway.viewer
Artifact: causeway-viewer-wicket
Type: pom
Directory: /viewers/wicket
----
|.Dependencies
****
de.agilecoders.wicket:wicket-bootstrap-extensions:jar:<managed> +
****

|Apache Causeway Viewer - Wicket (Applib)
[source,yaml]
----
Group: org.apache.causeway.viewer
Artifact: causeway-viewer-wicket-applib
Type: jar
Directory: /viewers/wicket/applib
----
|.Dependencies
****
org.apache.causeway.commons:causeway-commons:jar:<managed> +
org.apache.causeway.core:causeway-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:viewer:index/wicket/applib/CausewayModuleViewerWicketApplibMixins.adoc[CausewayModuleViewerWicketApplibMixins], xref:refguide:viewer:index/wicket/applib/mixins/Object_clearHints.adoc[Object_clearHints]
****

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

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

|Apache Causeway Viewer - Wicket (UI Components)
[source,yaml]
----
Group: org.apache.causeway.viewer
Artifact: causeway-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.CausewayWicketThemeSupportDefault +
****

.Dependencies
****
com.google.guava:guava:jar:<managed> +
de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed> +
de.agilecoders.wicket:wicket-bootstrap-themes:jar:<managed> +
de.agilecoders.wicket.webjars:wicket-webjars:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-commons-prism:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-commons-services:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-wicket-model:jar:<managed> +
org.apache.wicket:wicket-auth-roles: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.ow2.asm:asm-util:jar:<managed> +
org.slf4j:slf4j-api:jar:<managed> +
org.webjars:datatables:jar:<managed> +
org.webjars:jquery:jar:<managed> +
org.webjars:jquery-ui:jar:<managed> +
org.webjars:momentjs:jar:<managed> +
org.webjars:select2:jar:<managed> +
org.webjars.npm:summernote:jar:<managed> +
org.wicketstuff:wicketstuff-select2:jar:<managed> +
****

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

|Apache Causeway Viewer - Wicket (UI Test)
[source,yaml]
----
Group: org.apache.causeway.viewer
Artifact: causeway-viewer-wicket-ui-test
Type: jar
Directory: /viewers/wicket/ui-test
----
|Eclipse IDE failes to build the UI tests since junit-api is forced onto the module-path by Wicket.
So as a workaround putting tests into their own artifact.

.Dependencies
****
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
org.apache.causeway.valuetypes:causeway-valuetypes-jodatime-integration:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-wicket-ui:jar:<managed> +
****

|Apache Causeway Viewer - Wicket (Viewer)
[source,yaml]
----
Group: org.apache.causeway.viewer
Artifact: causeway-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.webmodule.WebModuleWicket +
****

.Dependencies
****
commons-io:commons-io:jar:<managed> +
de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-wicket-ui:jar:<managed> +
org.apache.wicket:wicket-auth-roles:jar:<managed> +
org.apache.wicket:wicket-spring:jar:<managed> +
org.springframework:spring-web:jar:<managed> +
****

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

== Valuetypes

[plantuml,Valuetypes,svg]
----
@startuml
set separator none
title Valuetypes - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Valuetypes.ApacheCausewayValJodaTimeapplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Valuetypes.ApacheCausewayValJodaTimeintegration>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Valuetypes.ApacheCausewayValJodaTimeparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Valuetypes.ApacheCausewayValuetypes>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Valuetypes>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Valuetypes\n<size:10>[Software System]</size>" <<Valuetypes>> {
  rectangle "==Apache Causeway Value types\n<size:10>[Container: packaging: pom]</size>" <<Valuetypes.ApacheCausewayValuetypes>> as Valuetypes.ApacheCausewayValuetypes
  rectangle "==Apache Causeway Val - Joda Time (parent)\n<size:10>[Container: packaging: pom]</size>" <<Valuetypes.ApacheCausewayValJodaTimeparent>> as Valuetypes.ApacheCausewayValJodaTimeparent
  rectangle "==Apache Causeway Val - Joda Time (applib)\n<size:10>[Container: packaging: jar]</size>" <<Valuetypes.ApacheCausewayValJodaTimeapplib>> as Valuetypes.ApacheCausewayValJodaTimeapplib
  rectangle "==Apache Causeway Val - Joda Time (integration)\n<size:10>[Container: packaging: jar]</size>" <<Valuetypes.ApacheCausewayValJodaTimeintegration>> as Valuetypes.ApacheCausewayValJodaTimeintegration
}

Valuetypes.ApacheCausewayValuetypes .[#707070,thickness=2].> Valuetypes.ApacheCausewayValJodaTimeparent : "<color:#707070>"
Valuetypes.ApacheCausewayValJodaTimeparent .[#707070,thickness=2].> Valuetypes.ApacheCausewayValJodaTimeapplib : "<color:#707070>"
Valuetypes.ApacheCausewayValJodaTimeparent .[#707070,thickness=2].> Valuetypes.ApacheCausewayValJodaTimeintegration : "<color:#707070>"
@enduml
----
.Projects/Modules (Valuetypes)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

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

|Apache Causeway Val - Joda Time (parent)
[source,yaml]
----
Group: org.apache.causeway.valuetypes
Artifact: causeway-valuetypes-jodatime
Type: pom
Directory: /valuetypes/jodatime
----
|Joda Time Library

|Apache Causeway Val - Joda Time (applib)
[source,yaml]
----
Group: org.apache.causeway.valuetypes
Artifact: causeway-valuetypes-jodatime-applib
Type: jar
Directory: /valuetypes/jodatime/applib
----
|.Dependencies
****
joda-time:joda-time:jar:<managed> +
org.apache.causeway.commons:causeway-commons:jar:<managed> +
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/jodatime/applib/CausewayModuleValJodatimeApplib.adoc[CausewayModuleValJodatimeApplib], xref:refguide:valuetypes:index/jodatime/applib/jaxb/JodaTimeJaxbAdapters.adoc[JodaTimeJaxbAdapters], xref:refguide:valuetypes:index/jodatime/applib/jaxb/JodaTimeXMLGregorianCalendarMarshalling.adoc[JodaTimeXMLGregorianCalendarMarshalling], xref:refguide:valuetypes:index/jodatime/applib/value/JodaTimeConverters.adoc[JodaTimeConverters]
****

|Apache Causeway Val - Joda Time (integration)
[source,yaml]
----
Group: org.apache.causeway.valuetypes
Artifact: causeway-valuetypes-jodatime-integration
Type: jar
Directory: /valuetypes/jodatime/integration
----
|.Components
****
o.a.i.valuetypes.jodatime.integration.valuesemantics.JodaDateTimeValueSemantics +
o.a.i.valuetypes.jodatime.integration.valuesemantics.JodaLocalDateTimeValueSemantics +
o.a.i.valuetypes.jodatime.integration.valuesemantics.JodaLocalDateValueSemantics +
o.a.i.valuetypes.jodatime.integration.valuesemantics.JodaLocalTimeValueSemantics +
****

.Dependencies
****
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
org.apache.causeway.valuetypes:causeway-valuetypes-jodatime-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/jodatime/integration/CausewayModuleValJodatimeIntegration.adoc[CausewayModuleValJodatimeIntegration]
****
|===

=== Asciidoc

[plantuml,Asciidoc,svg]
----
@startuml
set separator none
title Asciidoc - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorMetaModel>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorPersistenceJDO>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorapplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorpersistenceJPA>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctoruiwicket>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Asciidoc.ApacheCausewayValAsciidoctorui>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Asciidoc>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Asciidoc\n<size:10>[Software System]</size>" <<Asciidoc>> {
  rectangle "==Apache Causeway Val - Asciidoctor (parent)\n<size:10>[Container: packaging: pom]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorparent>> as Asciidoc.ApacheCausewayValAsciidoctorparent
  rectangle "==Apache Causeway Val - Asciidoctor (applib)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorapplib>> as Asciidoc.ApacheCausewayValAsciidoctorapplib
  rectangle "==Apache Causeway Val - Asciidoctor (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorMetaModel>> as Asciidoc.ApacheCausewayValAsciidoctorMetaModel
  rectangle "==Apache Causeway Val - Asciidoctor (Persistence JDO)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorPersistenceJDO>> as Asciidoc.ApacheCausewayValAsciidoctorPersistenceJDO
  rectangle "==Apache Causeway Val - Asciidoctor (persistence JPA)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorpersistenceJPA>> as Asciidoc.ApacheCausewayValAsciidoctorpersistenceJPA
  rectangle "==Apache Causeway Val - Asciidoctor (ui)\n<size:10>[Container: packaging: pom]</size>" <<Asciidoc.ApacheCausewayValAsciidoctorui>> as Asciidoc.ApacheCausewayValAsciidoctorui
  rectangle "==Apache Causeway Val - Asciidoctor (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<Asciidoc.ApacheCausewayValAsciidoctoruiwicket>> as Asciidoc.ApacheCausewayValAsciidoctoruiwicket
}

Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorMetaModel : "<color:#707070>"
Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorPersistenceJDO : "<color:#707070>"
Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorpersistenceJPA : "<color:#707070>"
Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorui : "<color:#707070>"
Asciidoc.ApacheCausewayValAsciidoctorui .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctoruiwicket : "<color:#707070>"
Asciidoc.ApacheCausewayValAsciidoctorparent .[#707070,thickness=2].> Asciidoc.ApacheCausewayValAsciidoctorapplib : "<color:#707070>"
@enduml
----
.Projects/Modules (Asciidoc)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

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

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

|Apache Causeway Val - Asciidoctor (MetaModel)
[source,yaml]
----
Group: org.apache.causeway.valuetypes
Artifact: causeway-valuetypes-asciidoc-metamodel
Type: jar
Directory: /valuetypes/asciidoc/metamodel
----
|.Components
****
o.a.i.valuetypes.asciidoc.metamodel.semantics.AsciiDocValueSemantics +
o.a.i.valuetypes.asciidoc.metamodel.semantics.ChangesDtoValueSemanticsPrettyRender +
o.a.i.valuetypes.asciidoc.metamodel.semantics.CommandDtoValueSemanticsPrettyRender +
o.a.i.valuetypes.asciidoc.metamodel.semantics.InteractionDtoValueSemanticsPrettyRender +
****

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

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

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

.Document Index Entries
****
xref:refguide:valuetypes:index/asciidoc/persistence/jdo/CausewayModuleValAsciidocPersistenceJdo.adoc[CausewayModuleValAsciidocPersistenceJdo], xref:refguide:valuetypes:index/asciidoc/persistence/jdo/converters/CausewayAsciiDocConverter.adoc[CausewayAsciiDocConverter]
****

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

.Document Index Entries
****
xref:refguide:valuetypes:index/asciidoc/persistence/jpa/CausewayModuleValAsciidocPersistenceJpa.adoc[CausewayModuleValAsciidocPersistenceJpa], xref:refguide:valuetypes:index/asciidoc/persistence/jpa/converters/CausewayAsciiDocConverter.adoc[CausewayAsciiDocConverter]
****

|Apache Causeway Val - Asciidoctor (ui)
[source,yaml]
----
Group: org.apache.causeway.valuetypes
Artifact: causeway-valuetypes-asciidoc-ui
Type: pom
Directory: /valuetypes/asciidoc/ui
----
|.Dependencies
****
com.github.jnr:jnr-constants:jar:0.10.4 +
com.github.jnr:jnr-enxio:jar:0.32.15 +
com.github.jnr:jnr-ffi:jar:2.2.14 +
com.github.jnr:jnr-posix:jar:3.1.17 +
org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
org.apache.causeway.valuetypes:causeway-valuetypes-asciidoc-applib:jar:<managed> +
org.asciidoctor:asciidoctorj:jar:${asciidoctorj.version} +
****

|Apache Causeway Val - Asciidoctor (ui wicket)
[source,yaml]
----
Group: org.apache.causeway.valuetypes
Artifact: causeway-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 +
****

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

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

=== Markdown

[plantuml,Markdown,svg]
----
@startuml
set separator none
title Markdown - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Markdown.ApacheCausewayValMarkdownMetaModel>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Markdown.ApacheCausewayValMarkdownPersistenceJDO>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Markdown.ApacheCausewayValMarkdownapplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Markdown.ApacheCausewayValMarkdownparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Markdown.ApacheCausewayValMarkdownpersistenceJPA>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Markdown.ApacheCausewayValMarkdownuiwicket>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Markdown.ApacheCausewayValMarkdownui>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Markdown>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Markdown\n<size:10>[Software System]</size>" <<Markdown>> {
  rectangle "==Apache Causeway Val - Markdown (parent)\n<size:10>[Container: packaging: pom]</size>" <<Markdown.ApacheCausewayValMarkdownparent>> as Markdown.ApacheCausewayValMarkdownparent
  rectangle "==Apache Causeway Val - Markdown (applib)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownapplib>> as Markdown.ApacheCausewayValMarkdownapplib
  rectangle "==Apache Causeway Val - Markdown (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownMetaModel>> as Markdown.ApacheCausewayValMarkdownMetaModel
  rectangle "==Apache Causeway Val - Markdown (Persistence JDO)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownPersistenceJDO>> as Markdown.ApacheCausewayValMarkdownPersistenceJDO
  rectangle "==Apache Causeway Val - Markdown (persistence JPA)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownpersistenceJPA>> as Markdown.ApacheCausewayValMarkdownpersistenceJPA
  rectangle "==Apache Causeway Val - Markdown (ui)\n<size:10>[Container: packaging: pom]</size>" <<Markdown.ApacheCausewayValMarkdownui>> as Markdown.ApacheCausewayValMarkdownui
  rectangle "==Apache Causeway Val - Markdown (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<Markdown.ApacheCausewayValMarkdownuiwicket>> as Markdown.ApacheCausewayValMarkdownuiwicket
}

Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownMetaModel : "<color:#707070>"
Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownPersistenceJDO : "<color:#707070>"
Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownpersistenceJPA : "<color:#707070>"
Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownui : "<color:#707070>"
Markdown.ApacheCausewayValMarkdownui .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownuiwicket : "<color:#707070>"
Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.ApacheCausewayValMarkdownapplib : "<color:#707070>"
@enduml
----
.Projects/Modules (Markdown)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

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

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

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

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

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

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

.Document Index Entries
****
xref:refguide:valuetypes:index/markdown/persistence/jdo/CausewayModuleValMarkdownPersistenceJdo.adoc[CausewayModuleValMarkdownPersistenceJdo], xref:refguide:valuetypes:index/markdown/persistence/jdo/converters/CausewayMarkdownConverter.adoc[CausewayMarkdownConverter]
****

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

.Document Index Entries
****
xref:refguide:valuetypes:index/markdown/persistence/jpa/CausewayModuleValMarkdownPersistenceJpa.adoc[CausewayModuleValMarkdownPersistenceJpa], xref:refguide:valuetypes:index/markdown/persistence/jpa/converters/CausewayMarkdownConverter.adoc[CausewayMarkdownConverter]
****

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

|Apache Causeway Val - Markdown (ui wicket)
[source,yaml]
----
Group: org.apache.causeway.valuetypes
Artifact: causeway-valuetypes-markdown-ui-wkt
Type: jar
Directory: /valuetypes/markdown/ui/wicket
----
|.Components
****
o.a.i.valuetypes.markdown.ui.wkt.components.MarkdownPanelFactoriesWkt$Parented +
o.a.i.valuetypes.markdown.ui.wkt.components.MarkdownPanelFactoriesWkt$Standalone +
****

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

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

=== Vega

[plantuml,Vega,svg]
----
@startuml
set separator none
title Vega - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Vega.ApacheCausewayValVegaMetaModel>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Vega.ApacheCausewayValVegaPersistenceJDO>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Vega.ApacheCausewayValVegaapplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Vega.ApacheCausewayValVegaparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Vega.ApacheCausewayValVegapersistenceJPA>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Vega.ApacheCausewayValVegauiwicket>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Vega.ApacheCausewayValVegaui>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Vega>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Vega\n<size:10>[Software System]</size>" <<Vega>> {
  rectangle "==Apache Causeway Val - Vega (parent)\n<size:10>[Container: packaging: pom]</size>" <<Vega.ApacheCausewayValVegaparent>> as Vega.ApacheCausewayValVegaparent
  rectangle "==Apache Causeway Val - Vega (applib)\n<size:10>[Container: packaging: jar]</size>" <<Vega.ApacheCausewayValVegaapplib>> as Vega.ApacheCausewayValVegaapplib
  rectangle "==Apache Causeway Val - Vega (MetaModel)\n<size:10>[Container: packaging: jar]</size>" <<Vega.ApacheCausewayValVegaMetaModel>> as Vega.ApacheCausewayValVegaMetaModel
  rectangle "==Apache Causeway Val - Vega (Persistence JDO)\n<size:10>[Container: packaging: jar]</size>" <<Vega.ApacheCausewayValVegaPersistenceJDO>> as Vega.ApacheCausewayValVegaPersistenceJDO
  rectangle "==Apache Causeway Val - Vega (persistence JPA)\n<size:10>[Container: packaging: jar]</size>" <<Vega.ApacheCausewayValVegapersistenceJPA>> as Vega.ApacheCausewayValVegapersistenceJPA
  rectangle "==Apache Causeway Val - Vega (ui)\n<size:10>[Container: packaging: pom]</size>" <<Vega.ApacheCausewayValVegaui>> as Vega.ApacheCausewayValVegaui
  rectangle "==Apache Causeway Val - Vega (ui wicket)\n<size:10>[Container: packaging: jar]</size>" <<Vega.ApacheCausewayValVegauiwicket>> as Vega.ApacheCausewayValVegauiwicket
}

Vega.ApacheCausewayValVegaparent .[#707070,thickness=2].> Vega.ApacheCausewayValVegaMetaModel : "<color:#707070>"
Vega.ApacheCausewayValVegaparent .[#707070,thickness=2].> Vega.ApacheCausewayValVegaPersistenceJDO : "<color:#707070>"
Vega.ApacheCausewayValVegaparent .[#707070,thickness=2].> Vega.ApacheCausewayValVegapersistenceJPA : "<color:#707070>"
Vega.ApacheCausewayValVegaparent .[#707070,thickness=2].> Vega.ApacheCausewayValVegaui : "<color:#707070>"
Vega.ApacheCausewayValVegaui .[#707070,thickness=2].> Vega.ApacheCausewayValVegauiwicket : "<color:#707070>"
Vega.ApacheCausewayValVegaparent .[#707070,thickness=2].> Vega.ApacheCausewayValVegaapplib : "<color:#707070>"
@enduml
----
.Projects/Modules (Vega)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway Val - Vega (parent)
[source,yaml]
----
Group: org.apache.causeway.valuetypes
Artifact: causeway-valuetypes-vega
Type: pom
Directory: /valuetypes/vega
----
|Vega/Vega-lite value type.

|Apache Causeway Val - Vega (applib)
[source,yaml]
----
Group: org.apache.causeway.valuetypes
Artifact: causeway-valuetypes-vega-applib
Type: jar
Directory: /valuetypes/vega/applib
----
|.Dependencies
****
org.apache.causeway.commons:causeway-commons:jar:<managed> +
org.apache.causeway.core:causeway-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/vega/applib/CausewayModuleValVegaApplib.adoc[CausewayModuleValVegaApplib], xref:refguide:valuetypes:index/vega/applib/jaxb/VegaJaxbAdapter.adoc[VegaJaxbAdapter], xref:refguide:valuetypes:index/vega/applib/value/Vega.adoc[Vega]
****

|Apache Causeway Val - Vega (MetaModel)
[source,yaml]
----
Group: org.apache.causeway.valuetypes
Artifact: causeway-valuetypes-vega-metamodel
Type: jar
Directory: /valuetypes/vega/metamodel
----
|.Components
****
o.a.i.valuetypes.vega.metamodel.semantics.VegaValueSemantics +
****

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

.Document Index Entries
****
xref:refguide:valuetypes:index/vega/metamodel/CausewayModuleValVegaMetaModel.adoc[CausewayModuleValVegaMetaModel]
****

|Apache Causeway Val - Vega (Persistence JDO)
[source,yaml]
----
Group: org.apache.causeway.valuetypes
Artifact: causeway-valuetypes-vega-persistence-jdo
Type: jar
Directory: /valuetypes/vega/persistence-jdo
----
|.Dependencies
****
org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
org.apache.causeway.valuetypes:causeway-valuetypes-vega-applib:jar:<managed> +
org.datanucleus:datanucleus-core:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/vega/persistence/jdo/dn/CausewayModuleValVegaPersistenceJdo.adoc[CausewayModuleValVegaPersistenceJdo], xref:refguide:valuetypes:index/vega/persistence/jdo/dn/converters/CausewayVegaConverter.adoc[CausewayVegaConverter]
****

|Apache Causeway Val - Vega (persistence JPA)
[source,yaml]
----
Group: org.apache.causeway.valuetypes
Artifact: causeway-valuetypes-vega-persistence-jpa
Type: jar
Directory: /valuetypes/vega/persistence-jpa
----
|.Dependencies
****
org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
org.apache.causeway.valuetypes:causeway-valuetypes-vega-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:valuetypes:index/vega/persistence/jpa/CausewayModuleValVegaPersistenceJpa.adoc[CausewayModuleValVegaPersistenceJpa], xref:refguide:valuetypes:index/vega/persistence/jpa/converters/CausewayVegaConverter.adoc[CausewayVegaConverter]
****

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

|Apache Causeway Val - Vega (ui wicket)
[source,yaml]
----
Group: org.apache.causeway.valuetypes
Artifact: causeway-valuetypes-vega-ui-wkt
Type: jar
Directory: /valuetypes/vega/ui/wicket
----
|.Components
****
o.a.i.valuetypes.vega.ui.wkt.components.VegaPanelFactoriesWkt$Parented +
o.a.i.valuetypes.vega.ui.wkt.components.VegaPanelFactoriesWkt$Standalone +
****

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

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

== Extensions

[plantuml,Extensions,svg]
----
@startuml
set separator none
title Extensions - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Extensions.ApacheCausewayExtAuditTrail>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtAuditTrailApplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtAuditTrailPersistenceusingJDO>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtAuditTrailPersistenceusingJPA>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtCORSimpl>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtCORSparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtFullCalendarapplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtFullCalendarparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtFullCalendarWicket>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtFullCalendarWicketIntegration>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtFullCalendarWicketUI>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtSecMan>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtSecManApplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtSecManDelegatedUsingShiro>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtSecManDelegatedusingSpringOauth2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtSecManEncryptionUsingSpring>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtSecManEncryptionUsingjbcrypt>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtSecManIntegration>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtSecManPersistenceUsingJDO>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtSecManPersistenceUsingJPA>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtSecuritySpringOauth2>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtServerSentEvents>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtServerSentEventsWicket>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtServerSentEventsmetamodel>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtServerSentEventsparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtSessionLog>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtSessionLogApplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtSessionLogPersistenceusingJDO>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtSessionLogPersistenceusingJPA>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtpdfjsApplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtpdfjsMetamodel>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtpdfjsParent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtpdfjsWicketIntegration>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtpdfjsWicketUI>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtpdfjsWicket>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions.ApacheCausewayExtensions>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Extensions>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Extensions\n<size:10>[Software System]</size>" <<Extensions>> {
  rectangle "==Apache Causeway Ext - FullCalendar (applib)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtFullCalendarapplib>> as Extensions.ApacheCausewayExtFullCalendarapplib
  rectangle "==Apache Causeway Ext - FullCalendar Wicket\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtFullCalendarWicket>> as Extensions.ApacheCausewayExtFullCalendarWicket
  rectangle "==Apache Causeway Ext - FullCalendar Wicket (Integration)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtFullCalendarWicketIntegration>> as Extensions.ApacheCausewayExtFullCalendarWicketIntegration
  rectangle "==Apache Causeway Ext - FullCalendar Wicket (UI)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtFullCalendarWicketUI>> as Extensions.ApacheCausewayExtFullCalendarWicketUI
  rectangle "==Apache Causeway Ext - pdf.js - Parent\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtpdfjsParent>> as Extensions.ApacheCausewayExtpdfjsParent
  rectangle "==Apache Causeway Ext - pdf.js - Applib\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtpdfjsApplib>> as Extensions.ApacheCausewayExtpdfjsApplib
  rectangle "==Apache Causeway Ext - pdf.js - Metamodel\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtpdfjsMetamodel>> as Extensions.ApacheCausewayExtpdfjsMetamodel
  rectangle "==Apache Causeway Ext - pdf.js Wicket\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtpdfjsWicket>> as Extensions.ApacheCausewayExtpdfjsWicket
  rectangle "==Apache Causeway Ext - pdf.js - Wicket (Integration)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtpdfjsWicketIntegration>> as Extensions.ApacheCausewayExtpdfjsWicketIntegration
  rectangle "==Apache Causeway Ext - pdf.js - Wicket (UI)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtpdfjsWicketUI>> as Extensions.ApacheCausewayExtpdfjsWicketUI
  rectangle "==Apache Causeway Extensions\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtensions>> as Extensions.ApacheCausewayExtensions
  rectangle "==Apache Causeway Ext - Sec Man\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtSecMan>> as Extensions.ApacheCausewayExtSecMan
  rectangle "==Apache Causeway Ext - Sec Man Applib\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManApplib>> as Extensions.ApacheCausewayExtSecManApplib
  rectangle "==Apache Causeway Ext - Sec Man Delegated (Using Shiro)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManDelegatedUsingShiro>> as Extensions.ApacheCausewayExtSecManDelegatedUsingShiro
  rectangle "==Apache Causeway Ext - Sec Man Delegated (using Spring Oauth2)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManDelegatedusingSpringOauth2>> as Extensions.ApacheCausewayExtSecManDelegatedusingSpringOauth2
  rectangle "==Apache Causeway Ext - Sec Man Encryption (Using jbcrypt)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManEncryptionUsingjbcrypt>> as Extensions.ApacheCausewayExtSecManEncryptionUsingjbcrypt
  rectangle "==Apache Causeway Ext - Sec Man Encryption (Using Spring)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManEncryptionUsingSpring>> as Extensions.ApacheCausewayExtSecManEncryptionUsingSpring
  rectangle "==Apache Causeway Ext - Sec Man Integration\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManIntegration>> as Extensions.ApacheCausewayExtSecManIntegration
  rectangle "==Apache Causeway Ext - Sec Man Persistence (Using JDO)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManPersistenceUsingJDO>> as Extensions.ApacheCausewayExtSecManPersistenceUsingJDO
  rectangle "==Apache Causeway Ext - Sec Man Persistence (Using JPA)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecManPersistenceUsingJPA>> as Extensions.ApacheCausewayExtSecManPersistenceUsingJPA
  rectangle "==Apache Causeway Ext - Session Log\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtSessionLog>> as Extensions.ApacheCausewayExtSessionLog
  rectangle "==Apache Causeway Ext - Audit Trail\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtAuditTrail>> as Extensions.ApacheCausewayExtAuditTrail
  rectangle "==Apache Causeway Ext - Session Log Applib\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSessionLogApplib>> as Extensions.ApacheCausewayExtSessionLogApplib
  rectangle "==Apache Causeway Ext - Session Log Persistence (using JDO)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSessionLogPersistenceusingJDO>> as Extensions.ApacheCausewayExtSessionLogPersistenceusingJDO
  rectangle "==Apache Causeway Ext - Session Log Persistence (using JPA)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSessionLogPersistenceusingJPA>> as Extensions.ApacheCausewayExtSessionLogPersistenceusingJPA
  rectangle "==Apache Causeway Ext - Security - Spring Oauth2\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtSecuritySpringOauth2>> as Extensions.ApacheCausewayExtSecuritySpringOauth2
  rectangle "==Apache Causeway Ext - Server Sent Events (parent)\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtServerSentEventsparent>> as Extensions.ApacheCausewayExtServerSentEventsparent
  rectangle "==Apache Causeway Ext - Server Sent Events\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtServerSentEvents>> as Extensions.ApacheCausewayExtServerSentEvents
  rectangle "==Apache Causeway Ext - Server Sent Events (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtServerSentEventsmetamodel>> as Extensions.ApacheCausewayExtServerSentEventsmetamodel
  rectangle "==Apache Causeway Ext - Server Sent Events (Wicket)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtServerSentEventsWicket>> as Extensions.ApacheCausewayExtServerSentEventsWicket
  rectangle "==Apache Causeway Ext - Audit Trail Applib\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtAuditTrailApplib>> as Extensions.ApacheCausewayExtAuditTrailApplib
  rectangle "==Apache Causeway Ext - Audit Trail Persistence (using JDO)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtAuditTrailPersistenceusingJDO>> as Extensions.ApacheCausewayExtAuditTrailPersistenceusingJDO
  rectangle "==Apache Causeway Ext - Audit Trail Persistence (using JPA)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtAuditTrailPersistenceusingJPA>> as Extensions.ApacheCausewayExtAuditTrailPersistenceusingJPA
  rectangle "==Apache Causeway Ext - CORS (parent)\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtCORSparent>> as Extensions.ApacheCausewayExtCORSparent
  rectangle "==Apache Causeway Ext - CORS (impl)\n<size:10>[Container: packaging: jar]</size>" <<Extensions.ApacheCausewayExtCORSimpl>> as Extensions.ApacheCausewayExtCORSimpl
  rectangle "==Apache Causeway Ext - FullCalendar (parent)\n<size:10>[Container: packaging: pom]</size>" <<Extensions.ApacheCausewayExtFullCalendarparent>> as Extensions.ApacheCausewayExtFullCalendarparent
}

Extensions.ApacheCausewayExtensions .[#707070,thickness=2].> Extensions.ApacheCausewayExtAuditTrail : "<color:#707070>"
Extensions.ApacheCausewayExtensions .[#707070,thickness=2].> Extensions.ApacheCausewayExtCORSparent : "<color:#707070>"
Extensions.ApacheCausewayExtensions .[#707070,thickness=2].> Extensions.ApacheCausewayExtFullCalendarparent : "<color:#707070>"
Extensions.ApacheCausewayExtensions .[#707070,thickness=2].> Extensions.ApacheCausewayExtpdfjsParent : "<color:#707070>"
Extensions.ApacheCausewayExtensions .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecMan : "<color:#707070>"
Extensions.ApacheCausewayExtensions .[#707070,thickness=2].> Extensions.ApacheCausewayExtSessionLog : "<color:#707070>"
Extensions.ApacheCausewayExtensions .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecuritySpringOauth2 : "<color:#707070>"
Extensions.ApacheCausewayExtensions .[#707070,thickness=2].> Extensions.ApacheCausewayExtServerSentEventsparent : "<color:#707070>"
Extensions.ApacheCausewayExtAuditTrail .[#707070,thickness=2].> Extensions.ApacheCausewayExtAuditTrailApplib : "<color:#707070>"
Extensions.ApacheCausewayExtAuditTrail .[#707070,thickness=2].> Extensions.ApacheCausewayExtAuditTrailPersistenceusingJDO : "<color:#707070>"
Extensions.ApacheCausewayExtAuditTrail .[#707070,thickness=2].> Extensions.ApacheCausewayExtAuditTrailPersistenceusingJPA : "<color:#707070>"
Extensions.ApacheCausewayExtCORSparent .[#707070,thickness=2].> Extensions.ApacheCausewayExtCORSimpl : "<color:#707070>"
Extensions.ApacheCausewayExtFullCalendarparent .[#707070,thickness=2].> Extensions.ApacheCausewayExtFullCalendarapplib : "<color:#707070>"
Extensions.ApacheCausewayExtFullCalendarparent .[#707070,thickness=2].> Extensions.ApacheCausewayExtFullCalendarWicket : "<color:#707070>"
Extensions.ApacheCausewayExtFullCalendarWicket .[#707070,thickness=2].> Extensions.ApacheCausewayExtFullCalendarWicketIntegration : "<color:#707070>"
Extensions.ApacheCausewayExtFullCalendarWicket .[#707070,thickness=2].> Extensions.ApacheCausewayExtFullCalendarWicketUI : "<color:#707070>"
Extensions.ApacheCausewayExtpdfjsParent .[#707070,thickness=2].> Extensions.ApacheCausewayExtpdfjsApplib : "<color:#707070>"
Extensions.ApacheCausewayExtpdfjsParent .[#707070,thickness=2].> Extensions.ApacheCausewayExtpdfjsMetamodel : "<color:#707070>"
Extensions.ApacheCausewayExtpdfjsParent .[#707070,thickness=2].> Extensions.ApacheCausewayExtpdfjsWicket : "<color:#707070>"
Extensions.ApacheCausewayExtpdfjsWicket .[#707070,thickness=2].> Extensions.ApacheCausewayExtpdfjsWicketIntegration : "<color:#707070>"
Extensions.ApacheCausewayExtpdfjsWicket .[#707070,thickness=2].> Extensions.ApacheCausewayExtpdfjsWicketUI : "<color:#707070>"
Extensions.ApacheCausewayExtSecMan .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecManApplib : "<color:#707070>"
Extensions.ApacheCausewayExtSecMan .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecManDelegatedUsingShiro : "<color:#707070>"
Extensions.ApacheCausewayExtSecMan .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecManDelegatedusingSpringOauth2 : "<color:#707070>"
Extensions.ApacheCausewayExtSecMan .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecManEncryptionUsingjbcrypt : "<color:#707070>"
Extensions.ApacheCausewayExtSecMan .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecManEncryptionUsingSpring : "<color:#707070>"
Extensions.ApacheCausewayExtSecMan .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecManIntegration : "<color:#707070>"
Extensions.ApacheCausewayExtSecMan .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecManPersistenceUsingJDO : "<color:#707070>"
Extensions.ApacheCausewayExtSecMan .[#707070,thickness=2].> Extensions.ApacheCausewayExtSecManPersistenceUsingJPA : "<color:#707070>"
Extensions.ApacheCausewayExtSessionLog .[#707070,thickness=2].> Extensions.ApacheCausewayExtSessionLogApplib : "<color:#707070>"
Extensions.ApacheCausewayExtSessionLog .[#707070,thickness=2].> Extensions.ApacheCausewayExtSessionLogPersistenceusingJDO : "<color:#707070>"
Extensions.ApacheCausewayExtSessionLog .[#707070,thickness=2].> Extensions.ApacheCausewayExtSessionLogPersistenceusingJPA : "<color:#707070>"
Extensions.ApacheCausewayExtServerSentEventsparent .[#707070,thickness=2].> Extensions.ApacheCausewayExtServerSentEvents : "<color:#707070>"
Extensions.ApacheCausewayExtServerSentEventsparent .[#707070,thickness=2].> Extensions.ApacheCausewayExtServerSentEventsmetamodel : "<color:#707070>"
Extensions.ApacheCausewayExtServerSentEventsparent .[#707070,thickness=2].> Extensions.ApacheCausewayExtServerSentEventsWicket : "<color:#707070>"
@enduml
----
.Projects/Modules (Extensions)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

|Apache Causeway Ext - Audit Trail
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-audittrail
Type: pom
Directory: /extensions/security/audittrail
----
|.Dependencies
****
org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
****

|Apache Causeway Ext - Audit Trail Applib
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-audittrail-applib
Type: jar
Directory: /extensions/security/audittrail/applib
----
|.Components
****
o.a.i.extensions.audittrail.applib.spiimpl.EntityPropertyChangeSubscriberForAuditTrail +
****

.Dependencies
****
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/audittrail/applib/app/AuditTrailMenu.adoc[AuditTrailMenu], xref:refguide:extensions:index/audittrail/applib/contributions/HasInteractionId_auditTrailEntries.adoc[HasInteractionId_auditTrailEntries], xref:refguide:extensions:index/audittrail/applib/contributions/Object_recentAuditTrailEntries.adoc[Object_recentAuditTrailEntries], xref:refguide:extensions:index/audittrail/applib/dom/AuditTrailEntry.adoc[AuditTrailEntry], xref:refguide:extensions:index/audittrail/applib/dom/AuditTrailEntryRepository.adoc[AuditTrailEntryRepository], xref:refguide:extensions:index/audittrail/applib/spiimpl/EntityPropertyChangeSubscriberForAuditTrail.adoc[EntityPropertyChangeSubscriberForAuditTrail]
****

|Apache Causeway Ext - Audit Trail Persistence (using JDO)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-audittrail-persistence-jdo
Type: jar
Directory: /extensions/security/audittrail/persistence-jdo
----
|.Components
****
o.a.i.extensions.audittrail.jdo.dom.AuditTrailEntryRepository +
****

.Dependencies
****
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-audittrail-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-audittrail-applib:test-jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
org.datanucleus:javax.jdo:jar:${datanucleus-jdo-api.version} +
****

|Apache Causeway Ext - Audit Trail Persistence (using JPA)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-audittrail-persistence-jpa
Type: jar
Directory: /extensions/security/audittrail/persistence-jpa
----
|.Components
****
o.a.i.extensions.audittrail.jpa.dom.AuditTrailEntryRepository +
****

.Dependencies
****
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-audittrail-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-audittrail-applib:test-jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
****

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

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

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

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

|Apache Causeway Ext - FullCalendar (applib)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-fullcalendar-applib
Type: jar
Directory: /extensions/vw/fullcalendar/applib
----
|.Components
****
o.a.i.extensions.fullcalendar.applib.value.CalendarEventSemantics +
****

.Dependencies
****
de.agilecoders.wicket:wicket-bootstrap-core:jar:<managed> +
org.apache.causeway.commons:causeway-commons:jar:<managed> +
org.apache.causeway.core:causeway-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/CausewayModuleExtFullCalendarApplib.adoc[CausewayModuleExtFullCalendarApplib], xref:refguide:extensions:index/fullcalendar/applib/spi/CalendarableDereferencingService.adoc[CalendarableDereferencingService], xref:refguide:extensions:index/fullcalendar/applib/value/CalendarEvent.adoc[CalendarEvent]
****

|Apache Causeway Ext - FullCalendar Wicket
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-fullcalendar-wicket
Type: pom
Directory: /extensions/vw/fullcalendar/wicket
----
|

|Apache Causeway Ext - FullCalendar Wicket (Integration)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-fullcalendar-wicket-integration
Type: jar
Directory: /extensions/vw/fullcalendar/wicket/integration
----
|Integrates fullcalendar.io with Wicket

.Dependencies
****
com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-fullcalendar-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-wicket-ui:jar:<managed> +
org.webjars:fullcalendar:jar:5.11.3 +
****

.Document Index Entries
****
xref:refguide:extensions:index/fullcalendar/wkt/integration/CausewayModuleExtFullcalendarWicketIntegration.adoc[CausewayModuleExtFullcalendarWicketIntegration]
****

|Apache Causeway Ext - FullCalendar Wicket (UI)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-fullcalendar-wicket-ui
Type: jar
Directory: /extensions/vw/fullcalendar/wicket/ui
----
|Integrates FullCalendar Wicket with the Wicket Viewer

.Components
****
o.a.i.extensions.fullcalendar.wkt.ui.viewer.calendarable.CalendarableCollectionAsFullCalendarFactory +
o.a.i.extensions.fullcalendar.wkt.ui.viewer.calendareventable.CalendarEventableCollectionAsFullCalendarFactory +
****

.Dependencies
****
org.apache.causeway.extensions:causeway-extensions-fullcalendar-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-fullcalendar-wicket-integration:jar:<managed> +
org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-wicket-ui:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/fullcalendar/wkt/ui/CausewayModuleExtFullcalendarWicketUi.adoc[CausewayModuleExtFullcalendarWicketUi], xref:refguide:extensions:index/fullcalendar/wkt/ui/viewer/CausewayModuleExtFullCalendarWicketUi.adoc[CausewayModuleExtFullCalendarWicketUi]
****

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

|Apache Causeway Ext - pdf.js - Applib
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-pdfjs-applib
Type: jar
Directory: /extensions/vw/pdfjs/applib
----
|.Components
****
o.a.i.extensions.pdfjs.applib.spi.PdfJsViewerAdvisor$Default +
****

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

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

|Apache Causeway Ext - pdf.js - Metamodel
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-pdfjs-metamodel
Type: jar
Directory: /extensions/vw/pdfjs/metamodel
----
|.Components
****
o.a.i.extensions.pdfjs.metamodel.facet.PdfJsViewerFacetFromAnnotationFactory$Register +
****

.Dependencies
****
org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-pdfjs-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
****

|Apache Causeway Ext - pdf.js Wicket
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-pdfjs-wicket
Type: pom
Directory: /extensions/vw/pdfjs/wicket
----
|

|Apache Causeway Ext - pdf.js - Wicket (Integration)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-pdfjs-wicket-integration
Type: jar
Directory: /extensions/vw/pdfjs/wicket/integration
----
|Integrates pdf.js with Wicket

.Dependencies
****
org.apache.causeway.extensions:causeway-extensions-pdfjs-applib:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-wicket-ui:jar:<managed> +
org.webjars.npm:pdfjs-dist:jar:3.7.107 +
****

.Document Index Entries
****
xref:refguide:extensions:index/pdfjs/wkt/integration/CausewayModuleExtPdfjsWicketIntegration.adoc[CausewayModuleExtPdfjsWicketIntegration]
****

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

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

.Document Index Entries
****
xref:refguide:extensions:index/pdfjs/wkt/ui/CausewayModuleExtPdfjsWicketUi.adoc[CausewayModuleExtPdfjsWicketUi]
****

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

|Apache Causeway Ext - Sec Man Applib
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-secman-applib
Type: jar
Directory: /extensions/security/secman/applib
----
|.Components
****
o.a.i.extensions.secman.applib.feature.api.ApplicationFeatureChoices +
o.a.i.extensions.secman.applib.role.dom.ApplicationRoleRepositoryAbstract +
o.a.i.extensions.secman.applib.seed.SeedSecurityModuleService +
o.a.i.extensions.secman.applib.user.menu.MeService$UserMenuMeActionAdvisor +
****

.Dependencies
****
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
org.springframework.security:spring-security-crypto:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/applib/CausewayModuleExtSecmanApplib.adoc[CausewayModuleExtSecmanApplib], xref:refguide:extensions:index/secman/applib/feature/api/ApplicationFeatureChoices.adoc[ApplicationFeatureChoices], xref:refguide:extensions:index/secman/applib/feature/contributions/ApplicationFeatureViewModel_permissions.adoc[ApplicationFeatureViewModel_permissions], xref:refguide:extensions:index/secman/applib/permission/app/ApplicationOrphanedPermissionManager.adoc[ApplicationOrphanedPermissionManager], xref:refguide:extensions:index/secman/applib/permission/app/mixins/ApplicationOrphanedPermissionManager_relocateSelected.adoc[ApplicationOrphanedPermissionManager_relocateSelected], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermission.adoc[ApplicationPermission], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionMode.adoc[ApplicationPermissionMode], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionRepository.adoc[ApplicationPermissionRepository], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionRepositoryAbstract.adoc[ApplicationPermissionRepositoryAbstract], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionRule.adoc[ApplicationPermissionRule], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionValue.adoc[ApplicationPermissionValue], xref:refguide:extensions:index/secman/applib/permission/dom/ApplicationPermissionValueSet.adoc[ApplicationPermissionValueSet], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_allow.adoc[ApplicationPermission_allow], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_changing.adoc[ApplicationPermission_changing], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_delete.adoc[ApplicationPermission_delete], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_feature.adoc[ApplicationPermission_feature], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_updateRole.adoc[ApplicationPermission_updateRole], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_veto.adoc[ApplicationPermission_veto], xref:refguide:extensions:index/secman/applib/permission/dom/mixins/ApplicationPermission_viewing.adoc[ApplicationPermission_viewing], xref:refguide:extensions:index/secman/applib/permission/menu/ApplicationPermissionMenu.adoc[ApplicationPermissionMenu], xref:refguide:extensions:index/secman/applib/permission/spi/PermissionsEvaluationService.adoc[PermissionsEvaluationService], xref:refguide:extensions:index/secman/applib/role/dom/ApplicationRole.adoc[ApplicationRole], xref:refguide:extensions:index/secman/applib/role/dom/ApplicationRoleRepository.adoc[ApplicationRoleRepository], xref:refguide:extensions:index/secman/applib/role/dom/ApplicationRoleRepositoryAbstract.adoc[ApplicationRoleRepositoryAbstract], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_addPermission.adoc[ApplicationRole_addPermission], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_addUser.adoc[ApplicationRole_addUser], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_delete.adoc[ApplicationRole_delete], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_removePermissions.adoc[ApplicationRole_removePermissions], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_removeUsers.adoc[ApplicationRole_removeUsers], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_updateDescription.adoc[ApplicationRole_updateDescription], xref:refguide:extensions:index/secman/applib/role/dom/mixins/ApplicationRole_updateName.adoc[ApplicationRole_updateName], xref:refguide:extensions:index/secman/applib/role/fixtures/AbstractRoleAndPermissionsFixtureScript.adoc[AbstractRoleAndPermissionsFixtureScript], xref:refguide:extensions:index/secman/applib/role/man/ApplicationRoleManager.adoc[ApplicationRoleManager], xref:refguide:extensions:index/secman/applib/role/man/mixins/ApplicationRoleManager_allRoles.adoc[ApplicationRoleManager_allRoles], xref:refguide:extensions:index/secman/applib/role/man/mixins/ApplicationRoleManager_exportAsYaml.adoc[ApplicationRoleManager_exportAsYaml], xref:refguide:extensions:index/secman/applib/role/man/mixins/ApplicationRoleManager_newRole.adoc[ApplicationRoleManager_newRole], xref:refguide:extensions:index/secman/applib/role/menu/ApplicationRoleMenu.adoc[ApplicationRoleMenu], xref:refguide:extensions:index/secman/applib/role/seed/CausewayAppFeatureRoleAndPermissions.adoc[CausewayAppFeatureRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayConfigurationRoleAndPermissions.adoc[CausewayConfigurationRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtAuditTrailRoleAndPermissions.adoc[CausewayExtAuditTrailRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtCommandLogRoleAndPermissions.adoc[CausewayExtCommandLogRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtExecutionLogRoleAndPermissions.adoc[CausewayExtExecutionLogRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtExecutionOutboxRoleAndPermissions.adoc[CausewayExtExecutionOutboxRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtH2ConsoleRoleAndPermissions.adoc[CausewayExtH2ConsoleRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtSecmanAdminRoleAndPermissions.adoc[CausewayExtSecmanAdminRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtSecmanRegularUserRoleAndPermissions.adoc[CausewayExtSecmanRegularUserRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayExtSessionLogRoleAndPermissions.adoc[CausewayExtSessionLogRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayPersistenceJdoMetaModelRoleAndPermissions.adoc[CausewayPersistenceJdoMetaModelRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewaySudoImpersonateRoleAndPermissions.adoc[CausewaySudoImpersonateRoleAndPermissions], xref:refguide:extensions:index/secman/applib/role/seed/CausewayViewerRestfulObjectsSwaggerRoleAndPermissions.adoc[CausewayViewerRestfulObjectsSwaggerRoleAndPermissions], xref:refguide:extensions:index/secman/applib/seed/SeedSecurityModuleService.adoc[SeedSecurityModuleService], xref:refguide:extensions:index/secman/applib/seed/scripts/SeedUsersAndRolesFixtureScript.adoc[SeedUsersAndRolesFixtureScript], xref:refguide:extensions:index/secman/applib/tenancy/dom/ApplicationTenancy.adoc[ApplicationTenancy], xref:refguide:extensions:index/secman/applib/tenancy/dom/ApplicationTenancyRepository.adoc[ApplicationTenancyRepository], xref:refguide:extensions:index/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.adoc[ApplicationTenancyRepositoryAbstract], xref:refguide:extensions:index/secman/applib/tenancy/dom/HasAtPath.adoc[HasAtPath], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_addChild.adoc[ApplicationTenancy_addChild], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_addUser.adoc[ApplicationTenancy_addUser], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_delete.adoc[ApplicationTenancy_delete], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_removeChild.adoc[ApplicationTenancy_removeChild], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_removeUser.adoc[ApplicationTenancy_removeUser], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_updateName.adoc[ApplicationTenancy_updateName], xref:refguide:extensions:index/secman/applib/tenancy/dom/mixins/ApplicationTenancy_users.adoc[ApplicationTenancy_users], xref:refguide:extensions:index/secman/applib/tenancy/fixtures/AbstractTenancyFixtureScript.adoc[AbstractTenancyFixtureScript], xref:refguide:extensions:index/secman/applib/tenancy/man/ApplicationTenancyManager.adoc[ApplicationTenancyManager], xref:refguide:extensions:index/secman/applib/tenancy/man/mixins/ApplicationTenancyManager_allTenancies.adoc[ApplicationTenancyManager_allTenancies], xref:refguide:extensions:index/secman/applib/tenancy/man/mixins/ApplicationTenancyManager_newTenancy.adoc[ApplicationTenancyManager_newTenancy], xref:refguide:extensions:index/secman/applib/tenancy/menu/ApplicationTenancyMenu.adoc[ApplicationTenancyMenu], xref:refguide:extensions:index/secman/applib/tenancy/seed/GlobalTenancy.adoc[GlobalTenancy], xref:refguide:extensions:index/secman/applib/tenancy/spi/ApplicationTenancyEvaluator.adoc[ApplicationTenancyEvaluator], xref:refguide:extensions:index/secman/applib/user/contributions/HasUsername_associatedUser.adoc[HasUsername_associatedUser], xref:refguide:extensions:index/secman/applib/user/dom/AccountType.adoc[AccountType], xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUser.adoc[ApplicationUser], xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUserRepository.adoc[ApplicationUserRepository], xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUserRepositoryAbstract.adoc[ApplicationUserRepositoryAbstract], xref:refguide:extensions:index/secman/applib/user/dom/ApplicationUserStatus.adoc[ApplicationUserStatus], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_addRole.adoc[ApplicationUser_addRole], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_delete.adoc[ApplicationUser_delete], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_duplicate.adoc[ApplicationUser_duplicate], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_lock.adoc[ApplicationUser_lock], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_removeRoles.adoc[ApplicationUser_removeRoles], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_resetPassword.adoc[ApplicationUser_resetPassword], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_timeZone.adoc[ApplicationUser_timeZone], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_unlock.adoc[ApplicationUser_unlock], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateAccountType.adoc[ApplicationUser_updateAccountType], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateAtPath.adoc[ApplicationUser_updateAtPath], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateEmailAddress.adoc[ApplicationUser_updateEmailAddress], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateFaxNumber.adoc[ApplicationUser_updateFaxNumber], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateLocale.adoc[ApplicationUser_updateLocale], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateName.adoc[ApplicationUser_updateName], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updatePassword.adoc[ApplicationUser_updatePassword], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updatePhoneNumber.adoc[ApplicationUser_updatePhoneNumber], xref:refguide:extensions:index/secman/applib/user/dom/mixins/ApplicationUser_updateUsername.adoc[ApplicationUser_updateUsername], xref:refguide:extensions:index/secman/applib/user/dom/mixins/perms/ApplicationUser_effectiveMemberPermissions.adoc[ApplicationUser_effectiveMemberPermissions], xref:refguide:extensions:index/secman/applib/user/dom/mixins/perms/ApplicationUser_filterEffectiveMemberPermissions.adoc[ApplicationUser_filterEffectiveMemberPermissions], xref:refguide:extensions:index/secman/applib/user/dom/mixins/perms/UserPermissionViewModel.adoc[UserPermissionViewModel], xref:refguide:extensions:index/secman/applib/user/events/UserCreatedEvent.adoc[UserCreatedEvent], xref:refguide:extensions:index/secman/applib/user/fixtures/AbstractUserAndRolesFixtureScript.adoc[AbstractUserAndRolesFixtureScript], xref:refguide:extensions:index/secman/applib/user/man/ApplicationUserManager.adoc[ApplicationUserManager], xref:refguide:extensions:index/secman/applib/user/man/mixins/ApplicationUserManager_allUsers.adoc[ApplicationUserManager_allUsers], xref:refguide:extensions:index/secman/applib/user/man/mixins/ApplicationUserManager_newDelegateUser.adoc[ApplicationUserManager_newDelegateUser], xref:refguide:extensions:index/secman/applib/user/man/mixins/ApplicationUserManager_newLocalUser.adoc[ApplicationUserManager_newLocalUser], xref:refguide:extensions:index/secman/applib/user/menu/ApplicationUserMenu.adoc[ApplicationUserMenu], xref:refguide:extensions:index/secman/applib/user/menu/MeService.adoc[MeService], xref:refguide:extensions:index/secman/applib/user/seed/CausewayExtSecmanAdminUser.adoc[CausewayExtSecmanAdminUser], xref:refguide:extensions:index/secman/applib/util/RegexReplacer.adoc[RegexReplacer]
****

|Apache Causeway Ext - Sec Man Delegated (Using Shiro)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-secman-delegated-shiro
Type: jar
Directory: /extensions/security/secman/delegated-shiro
----
|Provides an implementation of a Shiro Realm that will automatically created delegated ApplicationUsers for any users externally authenticated in a delegate realm

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

.Document Index Entries
****
xref:refguide:extensions:index/secman/delegated/shiro/CausewayModuleExtSecmanDelegatedShiro.adoc[CausewayModuleExtSecmanDelegatedShiro], xref:refguide:extensions:index/secman/delegated/shiro/realm/CausewayModuleExtSecmanShiroRealm.adoc[CausewayModuleExtSecmanShiroRealm], xref:refguide:extensions:index/secman/delegated/shiro/util/ShiroUtils.adoc[ShiroUtils]
****

|Apache Causeway Ext - Sec Man Delegated (using Spring Oauth2)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-secman-delegated-springoauth2
Type: jar
Directory: /extensions/security/secman/delegated-springoauth2
----
|Provides a domain service to automatically create a delegated ApplicationUser if authentication has been performed externally, eg by Spring OAuth2 or by Keycloak.

.Components
****
o.a.i.extensions.secman.delegated.springoauth2.dom.ApplicationUserAutoCreationService +
****

.Dependencies
****
org.apache.causeway.extensions:causeway-extensions-secman-applib:jar:<managed> +
org.springframework.security:spring-security-core:jar:<managed> +
org.springframework.security:spring-security-oauth2-core:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/delegated/springoauth2/CausewayModuleExtSecmanDelegatedSpringOauth2.adoc[CausewayModuleExtSecmanDelegatedSpringOauth2]
****

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

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

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

|Apache Causeway Ext - Sec Man Encryption (Using Spring)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-secman-encryption-spring
Type: jar
Directory: /extensions/security/secman/encryption-spring
----
|.Dependencies
****
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-secman-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/encryption/spring/CausewayModuleExtSecmanEncryptionSpring.adoc[CausewayModuleExtSecmanEncryptionSpring]
****

|Apache Causeway Ext - Sec Man Integration
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-secman-integration
Type: jar
Directory: /extensions/security/secman/integration
----
|.Components
****
o.a.i.extensions.secman.integration.authorizor.AuthorizorSecman +
o.a.i.extensions.secman.integration.authorizor.AuthorizorSecman$PermissionCache +
o.a.i.extensions.secman.integration.facets.TenantedAuthorizationPostProcessor$Register +
o.a.i.extensions.secman.integration.permissions.PermissionsEvaluationServiceForSecman +
o.a.i.extensions.secman.integration.spiimpl.ImpersonateMenuAdvisorForSecman +
o.a.i.extensions.secman.integration.spiimpl.ImpersonateMenuAdvisorForSecman$Cache +
o.a.i.extensions.secman.integration.spiimpl.TableColumnVisibilityServiceForSecman +
o.a.i.extensions.secman.integration.usermementorefiner.UserMementoRefinerFromApplicationUser +
o.a.i.extensions.secman.integration.userreg.UserRegistrationServiceForSecman +
****

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

.Document Index Entries
****
xref:refguide:extensions:index/secman/integration/CausewayModuleExtSecmanIntegration.adoc[CausewayModuleExtSecmanIntegration], xref:refguide:extensions:index/secman/integration/authenticator/AuthenticatorSecman.adoc[AuthenticatorSecman], xref:refguide:extensions:index/secman/integration/authenticator/AuthenticatorSecmanAutoConfiguration.adoc[AuthenticatorSecmanAutoConfiguration], xref:refguide:extensions:index/secman/integration/authorizor/AuthorizorSecman.adoc[AuthorizorSecman], xref:refguide:extensions:index/secman/integration/permissions/PermissionsEvaluationServiceForSecman.adoc[PermissionsEvaluationServiceForSecman], xref:refguide:extensions:index/secman/integration/userreg/UserRegistrationServiceForSecman.adoc[UserRegistrationServiceForSecman]
****

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

.Dependencies
****
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-secman-applib:test-jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-secman-integration:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/jdo/CausewayModuleExtSecmanPersistenceJdo.adoc[CausewayModuleExtSecmanPersistenceJdo]
****

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

.Dependencies
****
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-secman-applib:test-jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-secman-integration:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/secman/jpa/CausewayModuleExtSecmanPersistenceJpa.adoc[CausewayModuleExtSecmanPersistenceJpa]
****

|Apache Causeway Ext - Session Log
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-sessionlog
Type: pom
Directory: /extensions/security/sessionlog
----
|.Dependencies
****
org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
****

|Apache Causeway Ext - Session Log Applib
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-sessionlog-applib
Type: jar
Directory: /extensions/security/sessionlog/applib
----
|.Components
****
o.a.i.extensions.sessionlog.applib.spiimpl.SessionLogServiceInitializer +
o.a.i.extensions.sessionlog.applib.spiimpl.SessionSubscriberForSessionLog +
****

.Dependencies
****
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/sessionlog/applib/app/SessionLogMenu.adoc[SessionLogMenu], xref:refguide:extensions:index/sessionlog/applib/contributions/HasUsername_recentSessionsForUser.adoc[HasUsername_recentSessionsForUser], xref:refguide:extensions:index/sessionlog/applib/dom/SessionLogEntry.adoc[SessionLogEntry], xref:refguide:extensions:index/sessionlog/applib/dom/SessionLogEntryRepository.adoc[SessionLogEntryRepository], xref:refguide:extensions:index/sessionlog/applib/spiimpl/SessionLogServiceInitializer.adoc[SessionLogServiceInitializer], xref:refguide:extensions:index/sessionlog/applib/spiimpl/SessionSubscriberForSessionLog.adoc[SessionSubscriberForSessionLog]
****

|Apache Causeway Ext - Session Log Persistence (using JDO)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-sessionlog-persistence-jdo
Type: jar
Directory: /extensions/security/sessionlog/persistence-jdo
----
|.Components
****
o.a.i.extensions.sessionlog.jdo.dom.SessionLogEntryRepository +
****

.Dependencies
****
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-sessionlog-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-sessionlog-applib:test-jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
****

|Apache Causeway Ext - Session Log Persistence (using JPA)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-sessionlog-persistence-jpa
Type: jar
Directory: /extensions/security/sessionlog/persistence-jpa
----
|.Components
****
o.a.i.extensions.sessionlog.jpa.dom.SessionLogEntryPK$Semantics +
o.a.i.extensions.sessionlog.jpa.dom.SessionLogEntryRepository +
****

.Dependencies
****
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-sessionlog-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-sessionlog-applib:test-jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
****

|Apache Causeway Ext - Security - Spring Oauth2
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-spring-security-oauth2
Type: jar
Directory: /extensions/security/spring-oauth2
----
|Authentication Converter, using Spring Security's OAuth2 client

.Components
****
o.a.i.extensions.spring.security.oauth2.authconverters.AuthenticationConverterOfOAuth2UserPrincipal +
****

.Dependencies
****
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.security:causeway-security-spring:jar:<managed> +
org.springframework.boot:spring-boot-starter-oauth2-client:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/spring/security/oauth2/CausewayModuleExtSpringSecurityOAuth2.adoc[CausewayModuleExtSpringSecurityOAuth2]
****

|Apache Causeway Ext - Server Sent Events (parent)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-sse
Type: pom
Directory: /extensions/vw/sse
----
|Dynamically updating HTML markup

|Apache Causeway Ext - Server Sent Events
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-sse-applib
Type: jar
Directory: /extensions/vw/sse/applib
----
|.Dependencies
****
org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
org.apache.causeway.core:causeway-core-webapp:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-wicket-ui:jar:<managed> +
****

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

|Apache Causeway Ext - Server Sent Events (metamodel)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-sse-metamodel
Type: jar
Directory: /extensions/vw/sse/metamodel
----
|.Components
****
o.a.i.extensions.sse.metamodel.facets.SseAnnotationFacetFactory$Register +
****

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

|Apache Causeway Ext - Server Sent Events (Wicket)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-sse-wicket
Type: jar
Directory: /extensions/vw/sse/wicket
----
|.Components
****
o.a.i.extensions.sse.wicket.markup.ListeningMarkupPanelFactoriesForWicket$Parented +
o.a.i.extensions.sse.wicket.markup.ListeningMarkupPanelFactoriesForWicket$Standalone +
o.a.i.extensions.sse.wicket.services.SseServiceDefault +
o.a.i.extensions.sse.wicket.webmodule.WebModuleServerSentEvents +
****

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

.Document Index Entries
****
xref:refguide:extensions:index/sse/wicket/CausewayModuleExtSseWicket.adoc[CausewayModuleExtSseWicket], xref:refguide:extensions:index/sse/wicket/services/SseServiceDefault.adoc[SseServiceDefault], xref:refguide:extensions:index/sse/wicket/webmodule/WebModuleServerSentEvents.adoc[WebModuleServerSentEvents]
****
|===

=== Applib: Excel

[plantuml,Applib~ Excel,svg]
----
@startuml
set separator none
title Applib: Excel - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<ApplibExcel.ApacheCausewayExtExcelFixtures>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<ApplibExcel.ApacheCausewayExtExcelIntegTests>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<ApplibExcel.ApacheCausewayExtExcelapplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<ApplibExcel.ApacheCausewayExtExcelparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<ApplibExcel.ApacheCausewayExtWicketViewerExcelDownloadparent>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<ApplibExcel.ApacheCausewayExtWicketViewerExcelDownloadui>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<ApplibExcel.ApacheCausewaySubExceltestingsupport>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<ApplibExcel>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Applib: Excel\n<size:10>[Software System]</size>" <<ApplibExcel>> {
  rectangle "==Apache Causeway Ext - Excel (parent)\n<size:10>[Container: packaging: pom]</size>" <<ApplibExcel.ApacheCausewayExtExcelparent>> as ApplibExcel.ApacheCausewayExtExcelparent
  rectangle "==Apache Causeway Ext - Excel (applib)\n<size:10>[Container: packaging: jar]</size>" <<ApplibExcel.ApacheCausewayExtExcelapplib>> as ApplibExcel.ApacheCausewayExtExcelapplib
  rectangle "==Apache Causeway Ext - Excel (Fixtures)\n<size:10>[Container: packaging: jar]</size>" <<ApplibExcel.ApacheCausewayExtExcelFixtures>> as ApplibExcel.ApacheCausewayExtExcelFixtures
  rectangle "==Apache Causeway Ext - Excel (Integ Tests)\n<size:10>[Container: packaging: jar]</size>" <<ApplibExcel.ApacheCausewayExtExcelIntegTests>> as ApplibExcel.ApacheCausewayExtExcelIntegTests
  rectangle "==Apache Causeway Sub - Excel (testing support)\n<size:10>[Container: packaging: jar]</size>" <<ApplibExcel.ApacheCausewaySubExceltestingsupport>> as ApplibExcel.ApacheCausewaySubExceltestingsupport
  rectangle "==Apache Causeway Ext - Wicket Viewer - Excel Download (parent)\n<size:10>[Container: packaging: pom]</size>" <<ApplibExcel.ApacheCausewayExtWicketViewerExcelDownloadparent>> as ApplibExcel.ApacheCausewayExtWicketViewerExcelDownloadparent
  rectangle "==Apache Causeway Ext - Wicket Viewer - Excel Download (ui)\n<size:10>[Container: packaging: jar]</size>" <<ApplibExcel.ApacheCausewayExtWicketViewerExcelDownloadui>> as ApplibExcel.ApacheCausewayExtWicketViewerExcelDownloadui
}

ApplibExcel.ApacheCausewayExtExcelparent .[#707070,thickness=2].> ApplibExcel.ApacheCausewayExtExcelFixtures : "<color:#707070>"
ApplibExcel.ApacheCausewayExtExcelparent .[#707070,thickness=2].> ApplibExcel.ApacheCausewayExtExcelIntegTests : "<color:#707070>"
ApplibExcel.ApacheCausewayExtExcelparent .[#707070,thickness=2].> ApplibExcel.ApacheCausewaySubExceltestingsupport : "<color:#707070>"
ApplibExcel.ApacheCausewayExtWicketViewerExcelDownloadparent .[#707070,thickness=2].> ApplibExcel.ApacheCausewayExtWicketViewerExcelDownloadui : "<color:#707070>"
ApplibExcel.ApacheCausewayExtExcelparent .[#707070,thickness=2].> ApplibExcel.ApacheCausewayExtExcelapplib : "<color:#707070>"
@enduml
----
.Projects/Modules (Applib: Excel)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

|Apache Causeway Ext - Excel (applib)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-excel-applib
Type: jar
Directory: /extensions/core/excel/applib
----
|.Components
****
o.a.i.extensions.excel.applib.service.ExcelServiceDefault +
****

.Dependencies
****
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-applib:jar:<managed> +
org.apache.poi:poi-ooxml:jar:<managed> +
org.apache.poi:poi-ooxml-lite:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/excel/applib/AggregationType.adoc[AggregationType], xref:refguide:extensions:index/excel/applib/CausewayModuleExtExcelApplib.adoc[CausewayModuleExtExcelApplib], xref:refguide:extensions:index/excel/applib/ExcelMetaDataEnabled.adoc[ExcelMetaDataEnabled], xref:refguide:extensions:index/excel/applib/ExcelService.adoc[ExcelService], xref:refguide:extensions:index/excel/applib/Mode.adoc[Mode], xref:refguide:extensions:index/excel/applib/RowHandler.adoc[RowHandler], xref:refguide:extensions:index/excel/applib/WorksheetContent.adoc[WorksheetContent], xref:refguide:extensions:index/excel/applib/WorksheetSpec.adoc[WorksheetSpec], xref:refguide:extensions:index/excel/applib/annotation/HyperLink.adoc[HyperLink], xref:refguide:extensions:index/excel/applib/annotation/PivotColumn.adoc[PivotColumn], xref:refguide:extensions:index/excel/applib/annotation/PivotDecoration.adoc[PivotDecoration], xref:refguide:extensions:index/excel/applib/annotation/PivotRow.adoc[PivotRow], xref:refguide:extensions:index/excel/applib/annotation/PivotValue.adoc[PivotValue], xref:refguide:extensions:index/excel/applib/service/ExcelServiceDefault.adoc[ExcelServiceDefault], xref:refguide:extensions:index/excel/applib/util/AnnotationList.adoc[AnnotationList], xref:refguide:extensions:index/excel/applib/util/AnnotationTriplet.adoc[AnnotationTriplet], xref:refguide:extensions:index/excel/applib/util/ExcelFileBlobConverter.adoc[ExcelFileBlobConverter], xref:refguide:extensions:index/excel/applib/util/PivotUtils.adoc[PivotUtils], xref:refguide:extensions:index/excel/applib/util/SheetPivoter.adoc[SheetPivoter]
****

|Apache Causeway Ext - Excel (Fixtures)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-excel-fixtures
Type: jar
Directory: /extensions/core/excel/fixture
----
|.Dependencies
****
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-excel-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-excel-testing:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
****

|Apache Causeway Ext - Excel (Integ Tests)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-excel-integtests
Type: jar
Directory: /extensions/core/excel/integtests
----
|.Dependencies
****
org.apache.causeway.extensions:causeway-extensions-excel-fixtures:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fakedata-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
org.hsqldb:hsqldb:jar:<managed> +
****

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

.Document Index Entries
****
xref:refguide:extensions:index/excel/testing/CausewayModuleExtExcelTesting.adoc[CausewayModuleExtExcelTesting], xref:refguide:extensions:index/excel/testing/ExcelFixture.adoc[ExcelFixture], xref:refguide:extensions:index/excel/testing/ExcelFixture2.adoc[ExcelFixture2], xref:refguide:extensions:index/excel/testing/ExcelFixtureRowHandler.adoc[ExcelFixtureRowHandler], xref:refguide:extensions:index/excel/testing/ExcelFixtureWorkbookHandler.adoc[ExcelFixtureWorkbookHandler], xref:refguide:extensions:index/excel/testing/FixtureAwareRowHandler.adoc[FixtureAwareRowHandler]
****

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

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

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

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

=== Core: Command Log

[plantuml,Core~ Command Log,svg]
----
@startuml
set separator none
title Core: Command Log - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<CoreCommandLog.ApacheCausewayExtCommandLog>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreCommandLog.ApacheCausewayExtCommandLogAPI>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreCommandLog.ApacheCausewayExtCommandLogImplementationJDO>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreCommandLog.ApacheCausewayExtCommandLogImplementationJPA>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreCommandLog>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Core: Command Log\n<size:10>[Software System]</size>" <<CoreCommandLog>> {
  rectangle "==Apache Causeway Ext - Command Log\n<size:10>[Container: packaging: pom]</size>" <<CoreCommandLog.ApacheCausewayExtCommandLog>> as CoreCommandLog.ApacheCausewayExtCommandLog
  rectangle "==Apache Causeway Ext - Command Log API\n<size:10>[Container: packaging: jar]</size>" <<CoreCommandLog.ApacheCausewayExtCommandLogAPI>> as CoreCommandLog.ApacheCausewayExtCommandLogAPI
  rectangle "==Apache Causeway Ext - Command Log Implementation (JDO)\n<size:10>[Container: packaging: jar]</size>" <<CoreCommandLog.ApacheCausewayExtCommandLogImplementationJDO>> as CoreCommandLog.ApacheCausewayExtCommandLogImplementationJDO
  rectangle "==Apache Causeway Ext - Command Log Implementation (JPA)\n<size:10>[Container: packaging: jar]</size>" <<CoreCommandLog.ApacheCausewayExtCommandLogImplementationJPA>> as CoreCommandLog.ApacheCausewayExtCommandLogImplementationJPA
}

CoreCommandLog.ApacheCausewayExtCommandLog .[#707070,thickness=2].> CoreCommandLog.ApacheCausewayExtCommandLogAPI : "<color:#707070>"
CoreCommandLog.ApacheCausewayExtCommandLog .[#707070,thickness=2].> CoreCommandLog.ApacheCausewayExtCommandLogImplementationJDO : "<color:#707070>"
CoreCommandLog.ApacheCausewayExtCommandLog .[#707070,thickness=2].> CoreCommandLog.ApacheCausewayExtCommandLogImplementationJPA : "<color:#707070>"
@enduml
----
.Projects/Modules (Core: Command Log)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway Ext - Command Log
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-commandlog
Type: pom
Directory: /extensions/core/commandlog
----
|Logs commands

|Apache Causeway Ext - Command Log API
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-commandlog-applib
Type: jar
Directory: /extensions/core/commandlog/applib
----
|.Components
****
o.a.i.extensions.commandlog.applib.dom.BackgroundService +
o.a.i.extensions.commandlog.applib.dom.BackgroundService$PersistCommandExecutorService +
o.a.i.extensions.commandlog.applib.dom.CommandLogEntry$TableColumnOrderDefault +
o.a.i.extensions.commandlog.applib.job.RunBackgroundCommandsJob +
o.a.i.extensions.commandlog.applib.subscriber.CommandSubscriberForCommandLog +
****

.Dependencies
****
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.core:causeway-core-config:jar:<managed> +
org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
org.quartz-scheduler:quartz:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/commandlog/applib/app/CommandLogMenu.adoc[CommandLogMenu], xref:refguide:extensions:index/commandlog/applib/contributions/HasInteractionId_commandLogEntry.adoc[HasInteractionId_commandLogEntry], xref:refguide:extensions:index/commandlog/applib/contributions/HasUsername_recentCommandsByUser.adoc[HasUsername_recentCommandsByUser], xref:refguide:extensions:index/commandlog/applib/contributions/Object_recentCommands.adoc[Object_recentCommands], xref:refguide:extensions:index/commandlog/applib/contributions/T_recentBackgroundCommands.adoc[T_recentBackgroundCommands], xref:refguide:extensions:index/commandlog/applib/dom/BackgroundService.adoc[BackgroundService], xref:refguide:extensions:index/commandlog/applib/dom/BackgroundService_PersistCommandExecutorService.adoc[BackgroundService.PersistCommandExecutorService], xref:refguide:extensions:index/commandlog/applib/dom/CommandLogEntry.adoc[CommandLogEntry], xref:refguide:extensions:index/commandlog/applib/dom/CommandLogEntryRepository.adoc[CommandLogEntryRepository], xref:refguide:extensions:index/commandlog/applib/dom/ExecuteIn.adoc[ExecuteIn], xref:refguide:extensions:index/commandlog/applib/dom/ReplayState.adoc[ReplayState], xref:refguide:extensions:index/commandlog/applib/dom/mixins/CommandLogEntry_childCommands.adoc[CommandLogEntry_childCommands], xref:refguide:extensions:index/commandlog/applib/dom/mixins/CommandLogEntry_openResultObject.adoc[CommandLogEntry_openResultObject], xref:refguide:extensions:index/commandlog/applib/dom/mixins/CommandLogEntry_siblingCommands.adoc[CommandLogEntry_siblingCommands], xref:refguide:extensions:index/commandlog/applib/job/RunBackgroundCommandsJob.adoc[RunBackgroundCommandsJob], xref:refguide:extensions:index/commandlog/applib/subscriber/CommandSubscriberForCommandLog.adoc[CommandSubscriberForCommandLog]
****

|Apache Causeway Ext - Command Log Implementation (JDO)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-commandlog-persistence-jdo
Type: jar
Directory: /extensions/core/commandlog/persistence-jdo
----
|.Components
****
o.a.i.extensions.commandlog.jdo.dom.CommandLogEntryRepository +
****

.Dependencies
****
org.apache.causeway.extensions:causeway-extensions-commandlog-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-commandlog-applib:test-jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/commandlog/jdo/CausewayModuleExtCommandLogPersistenceJdo.adoc[CausewayModuleExtCommandLogPersistenceJdo]
****

|Apache Causeway Ext - Command Log Implementation (JPA)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-commandlog-persistence-jpa
Type: jar
Directory: /extensions/core/commandlog/persistence-jpa
----
|.Components
****
o.a.i.extensions.commandlog.jpa.dom.CommandLogEntryPK$Semantics +
o.a.i.extensions.commandlog.jpa.dom.CommandLogEntryRepository +
****

.Dependencies
****
org.apache.causeway.extensions:causeway-extensions-commandlog-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-commandlog-applib:test-jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/commandlog/jpa/CausewayModuleExtCommandLogPersistenceJpa.adoc[CausewayModuleExtCommandLogPersistenceJpa]
****
|===

=== Core: DocGen

[plantuml,Core~ DocGen,svg]
----
@startuml
set separator none
title Core: DocGen - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<CoreDocGen.ApacheCausewayExtDocgen>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreDocGen>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Core: DocGen\n<size:10>[Software System]</size>" <<CoreDocGen>> {
  rectangle "==Apache Causeway Ext - Docgen\n<size:10>[Container: packaging: jar]</size>" <<CoreDocGen.ApacheCausewayExtDocgen>> as CoreDocGen.ApacheCausewayExtDocgen
}

@enduml
----
.Projects/Modules (Core: DocGen)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway Ext - Docgen
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-docgen
Type: jar
Directory: /extensions/core/docgen
----
|Provides a set of code mining features that can help building documentation for your application.

.Components
****
o.a.i.extensions.docgen.topics.domainobjects.CausewayEntityDiagramPage +
o.a.i.extensions.docgen.topics.domainobjects.DomainEntityDiagramPage +
o.a.i.extensions.docgen.topics.domainobjects.EntityDiagramPageAbstract +
o.a.i.extensions.docgen.topics.welcome.WelcomeHelpPage +
****

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

.Document Index Entries
****
xref:refguide:extensions:index/docgen/CausewayModuleExtDocgen.adoc[CausewayModuleExtDocgen], xref:refguide:extensions:index/docgen/applib/HelpNode.adoc[HelpNode], xref:refguide:extensions:index/docgen/menu/DocumentationMenu.adoc[DocumentationMenu]
****
|===

=== Core: Execution Log

[plantuml,Core~ Execution Log,svg]
----
@startuml
set separator none
title Core: Execution Log - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<CoreExecutionLog.ApacheCausewayExtExecutionLog>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreExecutionLog.ApacheCausewayExtExecutionLogAPI>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJDO>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJPA>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreExecutionLog>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Core: Execution Log\n<size:10>[Software System]</size>" <<CoreExecutionLog>> {
  rectangle "==Apache Causeway Ext - Execution Log\n<size:10>[Container: packaging: pom]</size>" <<CoreExecutionLog.ApacheCausewayExtExecutionLog>> as CoreExecutionLog.ApacheCausewayExtExecutionLog
  rectangle "==Apache Causeway Ext - Execution Log API\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionLog.ApacheCausewayExtExecutionLogAPI>> as CoreExecutionLog.ApacheCausewayExtExecutionLogAPI
  rectangle "==Apache Causeway Ext - Execution Log Implementation (JDO)\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJDO>> as CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJDO
  rectangle "==Apache Causeway Ext - Execution Log Implementation (JPA)\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJPA>> as CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJPA
}

CoreExecutionLog.ApacheCausewayExtExecutionLog .[#707070,thickness=2].> CoreExecutionLog.ApacheCausewayExtExecutionLogAPI : "<color:#707070>"
CoreExecutionLog.ApacheCausewayExtExecutionLog .[#707070,thickness=2].> CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJDO : "<color:#707070>"
CoreExecutionLog.ApacheCausewayExtExecutionLog .[#707070,thickness=2].> CoreExecutionLog.ApacheCausewayExtExecutionLogImplementationJPA : "<color:#707070>"
@enduml
----
.Projects/Modules (Core: Execution Log)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway Ext - Execution Log
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-executionlog
Type: pom
Directory: /extensions/core/executionlog
----
|Logs executions

|Apache Causeway Ext - Execution Log API
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-executionlog-applib
Type: jar
Directory: /extensions/core/executionlog/applib
----
|.Components
****
o.a.i.extensions.executionlog.applib.dom.ExecutionLogEntry$TableColumnOrderDefault +
o.a.i.extensions.executionlog.applib.spiimpl.ExecutionSubscriberForExecutionLog +
****

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

.Document Index Entries
****
xref:refguide:extensions:index/executionlog/applib/CausewayModuleExtExecutionLogApplib.adoc[CausewayModuleExtExecutionLogApplib], xref:refguide:extensions:index/executionlog/applib/app/ExecutionLogMenu.adoc[ExecutionLogMenu], xref:refguide:extensions:index/executionlog/applib/contributions/HasInteractionId_executionLogEntries.adoc[HasInteractionId_executionLogEntries], xref:refguide:extensions:index/executionlog/applib/contributions/HasUsername_recentExecutionsByUser.adoc[HasUsername_recentExecutionsByUser], xref:refguide:extensions:index/executionlog/applib/contributions/Object_recentExecutions.adoc[Object_recentExecutions], xref:refguide:extensions:index/executionlog/applib/dom/ExecutionLogEntry.adoc[ExecutionLogEntry], xref:refguide:extensions:index/executionlog/applib/dom/ExecutionLogEntryRepository.adoc[ExecutionLogEntryRepository], xref:refguide:extensions:index/executionlog/applib/dom/ExecutionLogEntryType.adoc[ExecutionLogEntryType], xref:refguide:extensions:index/executionlog/applib/dom/mixins/ExecutionLogEntry_siblingExecutions.adoc[ExecutionLogEntry_siblingExecutions], xref:refguide:extensions:index/executionlog/applib/spiimpl/ExecutionSubscriberForExecutionLog.adoc[ExecutionSubscriberForExecutionLog]
****

|Apache Causeway Ext - Execution Log Implementation (JDO)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-executionlog-persistence-jdo
Type: jar
Directory: /extensions/core/executionlog/persistence-jdo
----
|.Components
****
o.a.i.extensions.executionlog.jdo.dom.ExecutionLogEntryPK$Semantics +
o.a.i.extensions.executionlog.jdo.dom.ExecutionLogEntryRepository +
****

.Dependencies
****
org.apache.causeway.extensions:causeway-extensions-executionlog-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionlog-applib:test-jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/executionlog/jdo/CausewayModuleExtExecutionLogPersistenceJdo.adoc[CausewayModuleExtExecutionLogPersistenceJdo]
****

|Apache Causeway Ext - Execution Log Implementation (JPA)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-executionlog-persistence-jpa
Type: jar
Directory: /extensions/core/executionlog/persistence-jpa
----
|.Components
****
o.a.i.extensions.executionlog.jpa.dom.ExecutionLogEntryPK$Semantics +
o.a.i.extensions.executionlog.jpa.dom.ExecutionLogEntryRepository +
****

.Dependencies
****
org.apache.causeway.extensions:causeway-extensions-executionlog-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionlog-applib:test-jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/executionlog/jpa/CausewayModuleExtExecutionLogPersistenceJpa.adoc[CausewayModuleExtExecutionLogPersistenceJpa]
****
|===

=== Core: Execution Outbox

[plantuml,Core~ Execution Outbox,svg]
----
@startuml
set separator none
title Core: Execution Outbox - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxAPI>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJDO>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJPA>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxRESTClient>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreExecutionOutbox>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Core: Execution Outbox\n<size:10>[Software System]</size>" <<CoreExecutionOutbox>> {
  rectangle "==Apache Causeway Ext - Execution Outbox\n<size:10>[Container: packaging: pom]</size>" <<CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox>> as CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox
  rectangle "==Apache Causeway Ext - Execution Outbox API\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxAPI>> as CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxAPI
  rectangle "==Apache Causeway Ext - Execution Outbox Implementation (JDO)\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJDO>> as CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJDO
  rectangle "==Apache Causeway Ext - Execution Outbox Implementation (JPA)\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJPA>> as CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJPA
  rectangle "==Apache Causeway Ext - Execution Outbox REST Client\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxRESTClient>> as CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxRESTClient
}

CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox .[#707070,thickness=2].> CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxRESTClient : "<color:#707070>"
CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox .[#707070,thickness=2].> CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxAPI : "<color:#707070>"
CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox .[#707070,thickness=2].> CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJDO : "<color:#707070>"
CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox .[#707070,thickness=2].> CoreExecutionOutbox.ApacheCausewayExtExecutionOutboxImplementationJPA : "<color:#707070>"
@enduml
----
.Projects/Modules (Core: Execution Outbox)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway Ext - Execution Outbox
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-executionoutbox
Type: pom
Directory: /extensions/core/executionoutbox
----
|Logs executions into an outbox, REST Client to consume

|Apache Causeway Ext - Execution Outbox API
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-executionoutbox-applib
Type: jar
Directory: /extensions/core/executionoutbox/applib
----
|.Components
****
o.a.i.extensions.executionoutbox.applib.dom.ExecutionOutboxEntry$TableColumnOrderDefault +
o.a.i.extensions.executionoutbox.applib.spiimpl.ContentMappingServiceForOutboxEvents +
o.a.i.extensions.executionoutbox.applib.spiimpl.ExecutionSubscriberForExecutionOutbox +
****

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

.Document Index Entries
****
xref:refguide:extensions:index/executionoutbox/applib/CausewayModuleExtExecutionOutboxApplib.adoc[CausewayModuleExtExecutionOutboxApplib], xref:refguide:extensions:index/executionoutbox/applib/app/ExecutionOutboxMenu.adoc[ExecutionOutboxMenu], xref:refguide:extensions:index/executionoutbox/applib/dom/ExecutionOutboxEntry.adoc[ExecutionOutboxEntry], xref:refguide:extensions:index/executionoutbox/applib/dom/ExecutionOutboxEntryRepository.adoc[ExecutionOutboxEntryRepository], xref:refguide:extensions:index/executionoutbox/applib/dom/ExecutionOutboxEntryType.adoc[ExecutionOutboxEntryType], xref:refguide:extensions:index/executionoutbox/applib/restapi/OutboxEvents.adoc[OutboxEvents], xref:refguide:extensions:index/executionoutbox/applib/restapi/OutboxRestApi.adoc[OutboxRestApi], xref:refguide:extensions:index/executionoutbox/applib/spiimpl/ContentMappingServiceForOutboxEvents.adoc[ContentMappingServiceForOutboxEvents]
****

|Apache Causeway Ext - Execution Outbox Implementation (JDO)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-executionoutbox-persistence-jdo
Type: jar
Directory: /extensions/core/executionoutbox/persistence-jdo
----
|.Components
****
o.a.i.extensions.executionoutbox.jdo.dom.ExecutionOutboxEntryPK$Semantics +
o.a.i.extensions.executionoutbox.jdo.dom.ExecutionOutboxEntryRepository +
****

.Dependencies
****
org.apache.causeway.extensions:causeway-extensions-executionoutbox-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionoutbox-applib:test-jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/executionoutbox/jdo/CausewayModuleExtExecutionOutboxPersistenceJdo.adoc[CausewayModuleExtExecutionOutboxPersistenceJdo]
****

|Apache Causeway Ext - Execution Outbox Implementation (JPA)
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-executionoutbox-persistence-jpa
Type: jar
Directory: /extensions/core/executionoutbox/persistence-jpa
----
|.Components
****
o.a.i.extensions.executionoutbox.jpa.dom.ExecutionOutboxEntryPK$Semantics +
o.a.i.extensions.executionoutbox.jpa.dom.ExecutionOutboxEntryRepository +
****

.Dependencies
****
org.apache.causeway.extensions:causeway-extensions-executionoutbox-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionoutbox-applib:test-jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/executionoutbox/jpa/CausewayModuleExtExecutionOutboxPersistenceJpa.adoc[CausewayModuleExtExecutionOutboxPersistenceJpa]
****

|Apache Causeway Ext - Execution Outbox REST Client
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-executionoutbox-restclient
Type: jar
Directory: /extensions/core/executionoutbox/restclient
----
|.Dependencies
****
com.h2database:h2:jar:<managed> +
org.apache.causeway.commons:causeway-commons:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-schema:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionoutbox-applib:test-jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionoutbox-persistence-jpa:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionoutbox-persistence-jpa:test-jar:<managed> +
org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
org.apache.causeway.security:causeway-security-bypass:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-restfulobjects-client:jar:2.0.0-SNAPSHOT +
org.apache.causeway.viewer:causeway-viewer-restfulobjects-jaxrsresteasy:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/executionoutbox/restclient/CausewayModuleExtExecutionRestClient.adoc[CausewayModuleExtExecutionRestClient], xref:refguide:extensions:index/executionoutbox/restclient/api/OutboxClient.adoc[OutboxClient]
****
|===

=== Core: Execution Republisher

[plantuml,Core~ Execution Republisher,svg]
----
@startuml
set separator none
title Core: Execution Republisher - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<CoreExecutionRepublisher.ApacheCausewayExtExecutionOutboxRepublisher>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreExecutionRepublisher.ApacheCausewayExtExecutionRepublisher>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreExecutionRepublisher>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Core: Execution Republisher\n<size:10>[Software System]</size>" <<CoreExecutionRepublisher>> {
  rectangle "==Apache Causeway Ext - Execution Republisher\n<size:10>[Container: packaging: pom]</size>" <<CoreExecutionRepublisher.ApacheCausewayExtExecutionRepublisher>> as CoreExecutionRepublisher.ApacheCausewayExtExecutionRepublisher
  rectangle "==Apache Causeway Ext - Execution Outbox Republisher\n<size:10>[Container: packaging: jar]</size>" <<CoreExecutionRepublisher.ApacheCausewayExtExecutionOutboxRepublisher>> as CoreExecutionRepublisher.ApacheCausewayExtExecutionOutboxRepublisher
}

CoreExecutionRepublisher.ApacheCausewayExtExecutionRepublisher .[#707070,thickness=2].> CoreExecutionRepublisher.ApacheCausewayExtExecutionOutboxRepublisher : "<color:#707070>"
@enduml
----
.Projects/Modules (Core: Execution Republisher)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway Ext - Execution Republisher
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-executionrepublisher
Type: pom
Directory: /extensions/core/executionrepublisher
----
|Republishes executions persisted in the execution log to the execution outbox

|Apache Causeway Ext - Execution Outbox Republisher
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-executionrepublisher-applib
Type: jar
Directory: /extensions/core/executionrepublisher/applib
----
|.Dependencies
****
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionlog-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionoutbox-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/executionrepublisher/applib/contributions/ExecutionLogEntry_copyToOutbox.adoc[ExecutionLogEntry_copyToOutbox]
****
|===

=== Core: Flyway

[plantuml,Core~ Flyway,svg]
----
@startuml
set separator none
title Core: Flyway - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<CoreFlyway.ApacheCausewayExtFlyway>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreFlyway.ApacheCausewayExtFlywayImpl>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<CoreFlyway>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Core: Flyway\n<size:10>[Software System]</size>" <<CoreFlyway>> {
  rectangle "==Apache Causeway Ext - Flyway\n<size:10>[Container: packaging: pom]</size>" <<CoreFlyway.ApacheCausewayExtFlyway>> as CoreFlyway.ApacheCausewayExtFlyway
  rectangle "==Apache Causeway Ext - Flyway Impl\n<size:10>[Container: packaging: jar]</size>" <<CoreFlyway.ApacheCausewayExtFlywayImpl>> as CoreFlyway.ApacheCausewayExtFlywayImpl
}

CoreFlyway.ApacheCausewayExtFlyway .[#707070,thickness=2].> CoreFlyway.ApacheCausewayExtFlywayImpl : "<color:#707070>"
@enduml
----
.Projects/Modules (Core: Flyway)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

|Apache Causeway Ext - Flyway Impl
[source,yaml]
----
Group: org.apache.causeway.extensions
Artifact: causeway-extensions-flyway-impl
Type: jar
Directory: /extensions/core/flyway/impl
----
|.Dependencies
****
org.apache.causeway.core:causeway-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> +
****
|===

=== Security: Audit Trail

=== Security: Secman

=== Security: Session Log

=== Security: Spring Oauth2

=== RO Viewer: CORS

=== Wicket Viewer: Excel Download

=== Wicket Viewer: Full Calendar

=== Wicket Viewer: PDF.js

=== Wicket Viewer: SSE

== Tooling

[plantuml,Tooling,svg]
----
@startuml
set separator none
title Tooling - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Tooling.ApacheCausewayTooling>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Tooling.ApacheCausewayToolingC4Modeling>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Tooling.ApacheCausewayToolingCLICommandLineInterface>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Tooling.ApacheCausewayToolingJavaModelCodeMining>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Tooling.ApacheCausewayToolingJavatoAsciidocCodeMining>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Tooling.ApacheCausewayToolingMetaProgramming>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Tooling.ApacheCausewayToolingModelforAsciiDoc>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Tooling.ApacheCausewayToolingProjectModelCodemining>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Tooling>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Tooling\n<size:10>[Software System]</size>" <<Tooling>> {
  rectangle "==Apache Causeway - Tooling\n<size:10>[Container: packaging: pom]</size>" <<Tooling.ApacheCausewayTooling>> as Tooling.ApacheCausewayTooling
  rectangle "==Apache Causeway - Tooling - C4 Modeling\n<size:10>[Container: packaging: jar]</size>" <<Tooling.ApacheCausewayToolingC4Modeling>> as Tooling.ApacheCausewayToolingC4Modeling
  rectangle "==Apache Causeway - Tooling - CLI (Command Line Interface)\n<size:10>[Container: packaging: jar]</size>" <<Tooling.ApacheCausewayToolingCLICommandLineInterface>> as Tooling.ApacheCausewayToolingCLICommandLineInterface
  rectangle "==Apache Causeway - Tooling - Java to Asciidoc (Code Mining)\n<size:10>[Container: packaging: jar]</size>" <<Tooling.ApacheCausewayToolingJavatoAsciidocCodeMining>> as Tooling.ApacheCausewayToolingJavatoAsciidocCodeMining
  rectangle "==Apache Causeway - Tooling - Java Model (Code Mining)\n<size:10>[Container: packaging: jar]</size>" <<Tooling.ApacheCausewayToolingJavaModelCodeMining>> as Tooling.ApacheCausewayToolingJavaModelCodeMining
  rectangle "==Apache Causeway - Tooling - Meta Programming\n<size:10>[Container: packaging: jar]</size>" <<Tooling.ApacheCausewayToolingMetaProgramming>> as Tooling.ApacheCausewayToolingMetaProgramming
  rectangle "==Apache Causeway - Tooling - Model for AsciiDoc\n<size:10>[Container: packaging: jar]</size>" <<Tooling.ApacheCausewayToolingModelforAsciiDoc>> as Tooling.ApacheCausewayToolingModelforAsciiDoc
  rectangle "==Apache Causeway - Tooling - Project Model (Code mining)\n<size:10>[Container: packaging: jar]</size>" <<Tooling.ApacheCausewayToolingProjectModelCodemining>> as Tooling.ApacheCausewayToolingProjectModelCodemining
}

Tooling.ApacheCausewayTooling .[#707070,thickness=2].> Tooling.ApacheCausewayToolingC4Modeling : "<color:#707070>"
Tooling.ApacheCausewayTooling .[#707070,thickness=2].> Tooling.ApacheCausewayToolingCLICommandLineInterface : "<color:#707070>"
Tooling.ApacheCausewayTooling .[#707070,thickness=2].> Tooling.ApacheCausewayToolingJavatoAsciidocCodeMining : "<color:#707070>"
Tooling.ApacheCausewayTooling .[#707070,thickness=2].> Tooling.ApacheCausewayToolingJavaModelCodeMining : "<color:#707070>"
Tooling.ApacheCausewayTooling .[#707070,thickness=2].> Tooling.ApacheCausewayToolingMetaProgramming : "<color:#707070>"
Tooling.ApacheCausewayTooling .[#707070,thickness=2].> Tooling.ApacheCausewayToolingModelforAsciiDoc : "<color:#707070>"
Tooling.ApacheCausewayTooling .[#707070,thickness=2].> Tooling.ApacheCausewayToolingProjectModelCodemining : "<color:#707070>"
@enduml
----
.Projects/Modules (Tooling)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

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

.Dependencies
****
org.apache.causeway.core:causeway-core-internaltestsupport:jar:${project.version} +
org.checkerframework:checker-qual:jar:3.36.0 +
org.mapstruct:mapstruct-processor:jar:1.5.5.Final +
org.projectlombok:lombok:jar:<managed> +
org.slf4j:slf4j-api:jar:<managed> +
org.springframework.boot:spring-boot-starter-log4j2:jar:<managed> +
****

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

See https://c4model.com/

.Dependencies
****
com.structurizr:structurizr-export:jar:<managed> +
org.apache.causeway.commons:causeway-commons:jar:<managed> +
****

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

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

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

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

|Apache Causeway - Tooling - Java Model (Code Mining)
[source,yaml]
----
Group: org.apache.causeway.tooling
Artifact: causeway-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.causeway.commons:causeway-commons:jar:<managed> +
****

|Apache Causeway - Tooling - Meta Programming
[source,yaml]
----
Group: org.apache.causeway.tooling
Artifact: causeway-tooling-metaprog
Type: jar
Directory: /tooling/metaprog
----
|Tools for Java meta-programming and runtime class generaton.

.Dependencies
****
com.graphql-java:graphql-java:jar:<managed> +
com.squareup:javapoet:jar:${javapoet.version} +
org.apache.causeway.commons:causeway-commons:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:${project.version} +
org.apache.logging.log4j:log4j-core:jar:<managed> +
****

|Apache Causeway - Tooling - Model for AsciiDoc
[source,yaml]
----
Group: org.apache.causeway.tooling
Artifact: causeway-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.causeway.commons:causeway-commons:jar:<managed> +
org.asciidoctor:asciidoctorj:jar:<managed> +
****

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

.Dependencies
****
org.apache.causeway.commons:causeway-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
set separator none
title Regression Tests - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTests>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstable>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableBootstrapping>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSession>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionGeneric>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionJDO>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionJPA>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableConfig>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableCoreWrapperFactory>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableCucumber>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableDomainModel>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableEventHandling>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableFactory>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableInteract>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableLayouts>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstablePersistenceJDO>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstablePersistenceJPA>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstablePublishingJPA>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableRest>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableValueTypes>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableViewersCommon>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableViewersJDO>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests.ApacheCausewayRegressionTestsstableViewersJPA>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<RegressionTests>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Regression Tests\n<size:10>[Software System]</size>" <<RegressionTests>> {
  rectangle "==Apache Causeway - Regression Tests (stable) - Core WrapperFactory\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableCoreWrapperFactory>> as RegressionTests.ApacheCausewayRegressionTestsstableCoreWrapperFactory
  rectangle "==Apache Causeway - Regression Tests (stable) - Cucumber\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableCucumber>> as RegressionTests.ApacheCausewayRegressionTestsstableCucumber
  rectangle "==Apache Causeway - Regression Tests (stable) - Domain Model\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableDomainModel>> as RegressionTests.ApacheCausewayRegressionTestsstableDomainModel
  rectangle "==Apache Causeway - Regression Tests (stable) - Event Handling\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableEventHandling>> as RegressionTests.ApacheCausewayRegressionTestsstableEventHandling
  rectangle "==Apache Causeway - Regression Tests (stable) - Factory\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableFactory>> as RegressionTests.ApacheCausewayRegressionTestsstableFactory
  rectangle "==Apache Causeway - Regression Tests (stable) - Interact\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableInteract>> as RegressionTests.ApacheCausewayRegressionTestsstableInteract
  rectangle "==Apache Causeway - Regression Tests (stable) - Layouts\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableLayouts>> as RegressionTests.ApacheCausewayRegressionTestsstableLayouts
  rectangle "==Apache Causeway - Regression Tests (stable) - Persistence (JDO)\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstablePersistenceJDO>> as RegressionTests.ApacheCausewayRegressionTestsstablePersistenceJDO
  rectangle "==Apache Causeway - Regression Tests (stable) - Persistence (JPA)\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstablePersistenceJPA>> as RegressionTests.ApacheCausewayRegressionTestsstablePersistenceJPA
  rectangle "==Apache Causeway - Regression Tests (stable) - Publishing (JPA)\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstablePublishingJPA>> as RegressionTests.ApacheCausewayRegressionTestsstablePublishingJPA
  rectangle "==Apache Causeway - Regression Tests\n<size:10>[Container: packaging: pom]</size>" <<RegressionTests.ApacheCausewayRegressionTests>> as RegressionTests.ApacheCausewayRegressionTests
  rectangle "==Apache Causeway - Regression Tests (stable) - Rest\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableRest>> as RegressionTests.ApacheCausewayRegressionTestsstableRest
  rectangle "==Apache Causeway - Regression Tests (stable) - Value Types\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableValueTypes>> as RegressionTests.ApacheCausewayRegressionTestsstableValueTypes
  rectangle "==Apache Causeway - Regression Tests (stable) - Viewers Common\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableViewersCommon>> as RegressionTests.ApacheCausewayRegressionTestsstableViewersCommon
  rectangle "==Apache Causeway - Regression Tests (stable) - Viewers JDO\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableViewersJDO>> as RegressionTests.ApacheCausewayRegressionTestsstableViewersJDO
  rectangle "==Apache Causeway - Regression Tests (stable) - Viewers JPA\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableViewersJPA>> as RegressionTests.ApacheCausewayRegressionTestsstableViewersJPA
  rectangle "==Apache Causeway - Regression Tests (stable)\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstable>> as RegressionTests.ApacheCausewayRegressionTestsstable
  rectangle "==Apache Causeway - Regression Tests (stable) - Bootstrapping\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableBootstrapping>> as RegressionTests.ApacheCausewayRegressionTestsstableBootstrapping
  rectangle "==Apache Causeway - Regression Tests (stable) - Cmd/Exec/Audit/Session\n<size:10>[Container: packaging: pom]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSession>> as RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSession
  rectangle "==Apache Causeway - Regression Tests (stable) - Cmd/Exec/Audit/Session - Generic\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionGeneric>> as RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionGeneric
  rectangle "==Apache Causeway - Regression Tests (stable) - Cmd/Exec/Audit/Session - JDO\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionJDO>> as RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionJDO
  rectangle "==Apache Causeway - Regression Tests (stable) - Cmd/Exec/Audit/Session - JPA\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionJPA>> as RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionJPA
  rectangle "==Apache Causeway - Regression Tests (stable) - Config\n<size:10>[Container: packaging: jar]</size>" <<RegressionTests.ApacheCausewayRegressionTestsstableConfig>> as RegressionTests.ApacheCausewayRegressionTestsstableConfig
}

RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstable : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableBootstrapping : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSession : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableConfig : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableCoreWrapperFactory : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableCucumber : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableDomainModel : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableEventHandling : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableFactory : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableInteract : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableLayouts : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstablePersistenceJDO : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstablePersistenceJPA : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstablePublishingJPA : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableRest : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableValueTypes : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableViewersCommon : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableViewersJDO : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTests .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableViewersJPA : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSession .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionGeneric : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSession .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionJDO : "<color:#707070>"
RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSession .[#707070,thickness=2].> RegressionTests.ApacheCausewayRegressionTestsstableCmdExecAuditSessionJPA : "<color:#707070>"
@enduml
----
.Projects/Modules (Regression Tests)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway - Regression Tests
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests
Type: pom
Directory: /regressiontests
----
|Collection of JUnit tests covering core functionalities of the framework.

.Dependencies
****
org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-unittestsupport-applib:jar:<managed> +
org.projectlombok:lombok:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable)
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable
Type: jar
Directory: /regressiontests/stable
----
|.Components
****
o.a.i.testdomain.conf.Configuration_headless$HeadlessCommandSupport +
o.a.i.testdomain.jdo.JdoInventoryDao +
o.a.i.testdomain.jdo.JdoTestFixtures +
o.a.i.testdomain.jpa.JpaInventoryDao +
o.a.i.testdomain.jpa.JpaTestFixtures +
o.a.i.testdomain.jpa.springdata.EmployeeRepository +
o.a.i.testdomain.model.valuetypes.ValueTypeExampleService +
o.a.i.testdomain.publishing.PublishingTestFactoryAbstract$CommitListener +
o.a.i.testdomain.publishing.PublishingTestFactoryJdo +
o.a.i.testdomain.publishing.PublishingTestFactoryJpa +
o.a.i.testdomain.publishing.subscriber.CommandSubscriberForTesting +
o.a.i.testdomain.publishing.subscriber.EntityChangesSubscriberForTesting +
o.a.i.testdomain.publishing.subscriber.EntityPropertyChangeSubscriberForTesting +
o.a.i.testdomain.publishing.subscriber.ExecutionSubscriberForTesting +
o.a.i.testdomain.util.event.LifecycleEventSubscriberJdoForTesting +
o.a.i.testdomain.util.event.LifecycleEventSubscriberJpaForTesting +
o.a.i.testdomain.util.interaction.DomainObjectTesterFactory +
o.a.i.testdomain.util.interaction.InteractionBoundaryProbe +
o.a.i.testdomain.util.kv.KVStoreForTesting +
o.a.i.testdomain.util.rest.RestEndpointService +
o.a.i.testdomain.wrapperfactory.CounterRepository +
****

.Dependencies
****
org.apache.causeway.extensions:causeway-extensions-fullcalendar-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-secman-encryption-jbcrypt:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-secman-integration:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-secman-persistence-jdo:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-sse-metamodel:jar:<managed> +
org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
org.apache.causeway.security:causeway-security-shiro:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.valuetypes:causeway-valuetypes-asciidoc-metamodel:jar:<managed> +
org.apache.causeway.valuetypes:causeway-valuetypes-markdown-metamodel:jar:<managed> +
org.apache.causeway.valuetypes:causeway-valuetypes-vega-metamodel:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-restfulobjects-client:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-restfulobjects-jaxrsresteasy:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-wicket-viewer:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Bootstrapping
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-bootstrapping
Type: jar
Directory: /regressiontests/stable-bootstrapping
----
|.Dependencies
****
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Cmd/Exec/Audit/Session
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-cmdexecauditsess
Type: pom
Directory: /regressiontests/stable-cmdexecauditsess
----
|

|Apache Causeway - Regression Tests (stable) - Cmd/Exec/Audit/Session - Generic
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-cmdexecauditsess-generic
Type: jar
Directory: /regressiontests/stable-cmdexecauditsess/generic
----
|.Dependencies
****
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.core:causeway-core-config:jar:<managed> +
org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-audittrail-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-commandlog-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionlog-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionoutbox-applib:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-sessionlog-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Cmd/Exec/Audit/Session - JDO
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-cmdexecauditsess-persistence-jdo
Type: jar
Directory: /regressiontests/stable-cmdexecauditsess/persistence-jdo
----
|.Dependencies
****
org.apache.causeway.extensions:causeway-extensions-audittrail-persistence-jdo:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-commandlog-persistence-jdo:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionlog-persistence-jdo:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionoutbox-persistence-jdo:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-sessionlog-persistence-jdo:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed> +
org.apache.causeway.regressiontests:causeway-regressiontests-stable-cmdexecauditsess-generic:jar:<managed> +
org.apache.causeway.security:causeway-security-bypass:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Cmd/Exec/Audit/Session - JPA
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-cmdexecauditsess-persistence-jpa
Type: jar
Directory: /regressiontests/stable-cmdexecauditsess/persistence-jpa
----
|.Dependencies
****
org.apache.causeway.extensions:causeway-extensions-audittrail-persistence-jpa:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-commandlog-persistence-jpa:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionlog-persistence-jpa:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-executionoutbox-persistence-jpa:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-sessionlog-persistence-jpa:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
org.apache.causeway.regressiontests:causeway-regressiontests-stable-cmdexecauditsess-generic:jar:<managed> +
org.apache.causeway.security:causeway-security-bypass:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Config
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-config
Type: jar
Directory: /regressiontests/stable-config
----
|.Dependencies
****
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Core WrapperFactory
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-core-wrapperfactory
Type: jar
Directory: /regressiontests/stable-core-wrapperfactory
----
|.Dependencies
****
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed> +
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Cucumber
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-cucumber
Type: jar
Directory: /regressiontests/stable-cucumber
----
|.Dependencies
****
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
org.apache.causeway.testing:causeway-testing-specsupport-applib:jar:<managed> +
org.junit.platform:junit-platform-suite-api:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Domain Model
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-domainmodel
Type: jar
Directory: /regressiontests/stable-domainmodel
----
|.Dependencies
****
com.approvaltests:approvaltests:jar:<managed> +
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Event Handling
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-eventhandling
Type: jar
Directory: /regressiontests/stable-eventhandling
----
|.Dependencies
****
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Factory
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-factory
Type: jar
Directory: /regressiontests/stable-factory
----
|.Dependencies
****
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Interact
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-interact
Type: jar
Directory: /regressiontests/stable-interact
----
|.Dependencies
****
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Layouts
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-layouts
Type: jar
Directory: /regressiontests/stable-layouts
----
|.Dependencies
****
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.core:causeway-core-config:jar:<managed> +
org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-wicket-applib:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Persistence (JDO)
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-persistence-jdo
Type: jar
Directory: /regressiontests/stable-persistence-jdo
----
|.Dependencies
****
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed> +
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Persistence (JPA)
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-persistence-jpa
Type: jar
Directory: /regressiontests/stable-persistence-jpa
----
|.Dependencies
****
org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Publishing (JPA)
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-publishing-jpa
Type: jar
Directory: /regressiontests/stable-publishing-jpa
----
|.Dependencies
****
org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Rest
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-rest
Type: jar
Directory: /regressiontests/stable-rest
----
|.Dependencies
****
org.apache.causeway.extensions:causeway-extensions-cors-impl:jar:<managed> +
org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed> +
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-restfulobjects-client:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-restfulobjects-jaxrsresteasy:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Value Types
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-value
Type: jar
Directory: /regressiontests/stable-value
----
|.Dependencies
****
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Viewers Common
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-viewers-common
Type: jar
Directory: /regressiontests/stable-viewers-common
----
|.Dependencies
****
org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-wicket-viewer:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Viewers JDO
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-viewers-jdo
Type: jar
Directory: /regressiontests/stable-viewers-jdo
----
|.Dependencies
****
org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
org.apache.causeway.persistence:causeway-persistence-jdo-datanucleus:jar:<managed> +
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-wicket-viewer:jar:<managed> +
****

|Apache Causeway - Regression Tests (stable) - Viewers JPA
[source,yaml]
----
Group: org.apache.causeway.regressiontests
Artifact: causeway-regressiontests-stable-viewers-jpa
Type: jar
Directory: /regressiontests/stable-viewers-jpa
----
|.Dependencies
****
org.apache.causeway.mavendeps:causeway-mavendeps-webapp:pom:<managed> +
org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
org.apache.causeway.regressiontests:causeway-regressiontests-stable:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-wicket-viewer:jar:<managed> +
****
|===

== Incubator

[plantuml,Incubator,svg]
----
@startuml
set separator none
title Incubator - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Incubator.ApacheCausewayIncubator>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Incubator>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Incubator\n<size:10>[Software System]</size>" <<Incubator>> {
  rectangle "==Apache Causeway Incubator\n<size:10>[Container: packaging: pom]</size>" <<Incubator.ApacheCausewayIncubator>> as Incubator.ApacheCausewayIncubator
}

@enduml
----
.Projects/Modules (Incubator)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway Incubator
[source,yaml]
----
Group: org.apache.causeway.incubator
Artifact: causeway-incubator
Type: pom
Directory: /incubator
----
|Collection of Apache Causeway artifacts, currently incubating.
|===

=== Kroviz Client

=== GraphQL Viewer

[plantuml,GraphQL Viewer,svg]
----
@startuml
set separator none
title GraphQL Viewer - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<GraphQLViewer.ApacheCausewayIncViewerGraphQL>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<GraphQLViewer.ApacheCausewayIncViewerGraphQLApplib>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<GraphQLViewer.ApacheCausewayIncViewerGraphQLModel>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<GraphQLViewer.ApacheCausewayIncViewerGraphQLTest>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<GraphQLViewer.ApacheCausewayIncViewerGraphQLViewer>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<GraphQLViewer>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "GraphQL Viewer\n<size:10>[Software System]</size>" <<GraphQLViewer>> {
  rectangle "==Apache Causeway Inc - Viewer GraphQL\n<size:10>[Container: packaging: pom]</size>" <<GraphQLViewer.ApacheCausewayIncViewerGraphQL>> as GraphQLViewer.ApacheCausewayIncViewerGraphQL
  rectangle "==Apache Causeway Inc - Viewer GraphQL (Applib)\n<size:10>[Container: packaging: jar]</size>" <<GraphQLViewer.ApacheCausewayIncViewerGraphQLApplib>> as GraphQLViewer.ApacheCausewayIncViewerGraphQLApplib
  rectangle "==Apache Causeway Inc - Viewer GraphQL (Model)\n<size:10>[Container: packaging: jar]</size>" <<GraphQLViewer.ApacheCausewayIncViewerGraphQLModel>> as GraphQLViewer.ApacheCausewayIncViewerGraphQLModel
  rectangle "==Apache Causeway Inc - Viewer GraphQL (Test)\n<size:10>[Container: packaging: jar]</size>" <<GraphQLViewer.ApacheCausewayIncViewerGraphQLTest>> as GraphQLViewer.ApacheCausewayIncViewerGraphQLTest
  rectangle "==Apache Causeway Inc - Viewer GraphQL (Viewer)\n<size:10>[Container: packaging: jar]</size>" <<GraphQLViewer.ApacheCausewayIncViewerGraphQLViewer>> as GraphQLViewer.ApacheCausewayIncViewerGraphQLViewer
}

GraphQLViewer.ApacheCausewayIncViewerGraphQL .[#707070,thickness=2].> GraphQLViewer.ApacheCausewayIncViewerGraphQLViewer : "<color:#707070>"
GraphQLViewer.ApacheCausewayIncViewerGraphQL .[#707070,thickness=2].> GraphQLViewer.ApacheCausewayIncViewerGraphQLApplib : "<color:#707070>"
GraphQLViewer.ApacheCausewayIncViewerGraphQL .[#707070,thickness=2].> GraphQLViewer.ApacheCausewayIncViewerGraphQLModel : "<color:#707070>"
GraphQLViewer.ApacheCausewayIncViewerGraphQL .[#707070,thickness=2].> GraphQLViewer.ApacheCausewayIncViewerGraphQLTest : "<color:#707070>"
@enduml
----
.Projects/Modules (GraphQL Viewer)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway Inc - Viewer GraphQL
[source,yaml]
----
Group: org.apache.causeway.incubator.viewer
Artifact: causeway-viewer-graphql
Type: pom
Directory: /incubator/viewers/graphql
----
|

|Apache Causeway Inc - Viewer GraphQL (Applib)
[source,yaml]
----
Group: org.apache.causeway.incubator.viewer
Artifact: causeway-viewer-graphql-applib
Type: jar
Directory: /incubator/viewers/graphql/applib
----
|.Dependencies
****
org.apache.causeway.core:causeway-applib:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
****

|Apache Causeway Inc - Viewer GraphQL (Model)
[source,yaml]
----
Group: org.apache.causeway.incubator.viewer
Artifact: causeway-viewer-graphql-model
Type: jar
Directory: /incubator/viewers/graphql/model
----
|.Dependencies
****
com.graphql-java:graphql-java:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.incubator.viewer:causeway-viewer-graphql-applib:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-commons-model:jar:<managed> +
org.springframework.graphql:spring-graphql:jar:<managed> +
****

|Apache Causeway Inc - Viewer GraphQL (Test)
[source,yaml]
----
Group: org.apache.causeway.incubator.viewer
Artifact: causeway-viewer-graphql-test
Type: jar
Directory: /incubator/viewers/graphql/test
----
|.Dependencies
****
com.approvaltests:approvaltests:jar:<managed> +
com.h2database:h2:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-runtimeservices:jar:<managed> +
org.apache.causeway.incubator.viewer:causeway-viewer-graphql-viewer:jar:<managed> +
org.apache.causeway.persistence:causeway-persistence-jpa-eclipselink:jar:<managed> +
org.apache.causeway.security:causeway-security-bypass:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
****

|Apache Causeway Inc - Viewer GraphQL (Viewer)
[source,yaml]
----
Group: org.apache.causeway.incubator.viewer
Artifact: causeway-viewer-graphql-viewer
Type: jar
Directory: /incubator/viewers/graphql/viewer
----
|.Components
****
o.a.i.viewer.graphql.viewer.source.ExecutionStrategyResolvingWithinInteraction +
o.a.i.viewer.graphql.viewer.source.GraphQlServiceForCauseway +
o.a.i.viewer.graphql.viewer.source.GraphQlSourceForCauseway +
o.a.i.viewer.graphql.viewer.source.ObjectTypeFactory +
o.a.i.viewer.graphql.viewer.source.QueryFieldFactory +
****

.Dependencies
****
org.apache.causeway.core:causeway-core-webapp:jar:<managed> +
org.apache.causeway.incubator.viewer:causeway-viewer-graphql-model:jar:<managed> +
org.springframework.boot:spring-boot-starter-websocket:jar:<managed> +
****
|===

== Other

[plantuml,Other,svg]
----
@startuml
set separator none
title Other - Containers

left to right direction

skinparam {
  arrowFontSize 10
  defaultTextAlignment center
  wrapWidth 200
  maxMessageSize 100
}

hide stereotype

skinparam rectangle<<Other.ApacheCausewayExtCommandReplay>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Other.ApacheCausewayExtCommandReplayforPrimary>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Other.ApacheCausewayExtCommandReplayforSecondary>> {
  BackgroundColor #438dd5
  FontColor #fffffe
  BorderColor #2e6295
  shadowing false
}
skinparam rectangle<<Other>> {
  BorderColor #9a9a9a
  FontColor #9a9a9a
  shadowing false
}

rectangle "Other\n<size:10>[Software System]</size>" <<Other>> {
  rectangle "==Apache Causeway Ext - Command Replay\n<size:10>[Container: packaging: pom]</size>" <<Other.ApacheCausewayExtCommandReplay>> as Other.ApacheCausewayExtCommandReplay
  rectangle "==Apache Causeway Ext - Command Replay for Primary\n<size:10>[Container: packaging: jar]</size>" <<Other.ApacheCausewayExtCommandReplayforPrimary>> as Other.ApacheCausewayExtCommandReplayforPrimary
  rectangle "==Apache Causeway Ext - Command Replay for Secondary\n<size:10>[Container: packaging: jar]</size>" <<Other.ApacheCausewayExtCommandReplayforSecondary>> as Other.ApacheCausewayExtCommandReplayforSecondary
}

Other.ApacheCausewayExtCommandReplay .[#707070,thickness=2].> Other.ApacheCausewayExtCommandReplayforPrimary : "<color:#707070>"
Other.ApacheCausewayExtCommandReplay .[#707070,thickness=2].> Other.ApacheCausewayExtCommandReplayforSecondary : "<color:#707070>"
@enduml
----
.Projects/Modules (Other)
[cols="3a,5a", options="header"]
|===
|Coordinates |Description 

|Apache Causeway Ext - Command Replay
[source,yaml]
----
Group: org.apache.causeway.incubator.extensions
Artifact: causeway-extensions-commandreplay
Type: pom
Directory: /incubator/extensions/core/commandreplay
----
|Replays commands to secondary system

|Apache Causeway Ext - Command Replay for Primary
[source,yaml]
----
Group: org.apache.causeway.incubator.extensions
Artifact: causeway-extensions-commandreplay-primary
Type: jar
Directory: /incubator/extensions/core/commandreplay/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.causeway.core:causeway-core-config:jar:<managed> +
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.core:causeway-schema:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-commandlog-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/commandreplay/primary/CausewayModuleExtCommandReplayPrimary.adoc[CausewayModuleExtCommandReplayPrimary], 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/CommandRetrievalOnPrimaryService.adoc[CommandRetrievalOnPrimaryService], xref:refguide:extensions:index/commandreplay/primary/ui/CommandReplayOnPrimaryService.adoc[CommandReplayOnPrimaryService]
****

|Apache Causeway Ext - Command Replay for Secondary
[source,yaml]
----
Group: org.apache.causeway.incubator.extensions
Artifact: causeway-extensions-commandreplay-secondary
Type: jar
Directory: /incubator/extensions/core/commandreplay/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.config.SecondaryConfig +
o.a.i.extensions.commandreplay.secondary.fetch.CommandFetcher +
o.a.i.extensions.commandreplay.secondary.job.ReplicateAndReplayJob +
****

.Dependencies
****
org.apache.causeway.core:causeway-core-config:jar:<managed> +
org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
org.apache.causeway.core:causeway-core-runtime:jar:<managed> +
org.apache.causeway.core:causeway-schema:jar:<managed> +
org.apache.causeway.extensions:causeway-extensions-commandlog-applib:jar:<managed> +
org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-restfulobjects-client:jar:<managed> +
org.apache.causeway.viewer:causeway-viewer-restfulobjects-jaxrsresteasy:jar:<managed> +
org.glassfish.jersey.ext:jersey-spring5:jar:<managed> +
org.springframework.boot:spring-boot-starter-quartz:jar:<managed> +
****

.Document Index Entries
****
xref:refguide:extensions:index/commandreplay/secondary/CausewayModuleExtCommandReplaySecondary.adoc[CausewayModuleExtCommandReplaySecondary], 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/config/SecondaryConfig.adoc[SecondaryConfig], xref:refguide:extensions:index/commandreplay/secondary/fetch/CommandFetcher.adoc[CommandFetcher], xref:refguide:extensions:index/commandreplay/secondary/job/JobExecutionData.adoc[JobExecutionData], 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/CommandLogEntry_exclude.adoc[CommandLogEntry_exclude], xref:refguide:extensions:index/commandreplay/secondary/mixins/CommandLogEntry_replayQueue.adoc[CommandLogEntry_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/status/SecondaryStatus.adoc[SecondaryStatus], xref:refguide:extensions:index/commandreplay/secondary/ui/CommandReplayOnSecondaryService.adoc[CommandReplayOnSecondaryService]
****
|===
