This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to branch CAUSEWAY-3866 in repository https://gitbox.apache.org/repos/asf/causeway.git
commit 7eeea412b4a662d0f4b0bef2f340e0e0b32f478c Author: Dan Haywood <[email protected]> AuthorDate: Sun Oct 19 12:16:13 2025 +0100 CAUSEWAY-3866: cleans up queryDSL and parent pom docs a little --- .../attachments/algolia-search/algolia-config.json | 2 +- .../components/docs/modules/ROOT/pages/about.adoc | 1 + .../ROOT/partials/module-nav/components.adoc | 2 + .../ROOT/pages/setup-and-configuration.adoc | 107 ++++++++++++++++++++- ...nd-configuration-for-persistence-mechanism.adoc | 104 -------------------- .../parent-pom/images/pom-hierarchy.drawio.png | Bin 184350 -> 295914 bytes starters/adoc/modules/parent-pom/pages/about.adoc | 25 +++-- 7 files changed, 118 insertions(+), 123 deletions(-) diff --git a/antora/components/comguide/modules/ROOT/attachments/algolia-search/algolia-config.json b/antora/components/comguide/modules/ROOT/attachments/algolia-search/algolia-config.json index a09a402d55c..2cdb1c728a4 100644 --- a/antora/components/comguide/modules/ROOT/attachments/algolia-search/algolia-config.json +++ b/antora/components/comguide/modules/ROOT/attachments/algolia-search/algolia-config.json @@ -7,7 +7,7 @@ "https://causeway.apache.org/sitemap.xml" ], "stop_urls": [ - "https://causeway[.]apache[.]org/(docs|comguide|conguide|setupguide|relnotes|refguide|userguide|core|security|extensions|valuetypes|vro|vw|pjdo|pjpa|testing|tutorials|incubator|regressiontests)/(2.0.0|2.0.0-RC2|2.0.0-RC1|2.0.0-M9|2.0.0-M8|2.0.0-M7|2.0.0-M6|2.0.0-M5)/.*", + "https://causeway[.]apache[.]org/(docs|comguide|conguide|setupguide|relnotes|refguide|userguide|core|security|extensions|valuetypes|vro|vw|gqlv|querydsl|pjdo|pjpa|testing|tutorials|incubator|regressiontests)/(2.0.0|2.0.0-RC2|2.0.0-RC1|2.0.0-M9|2.0.0-M8|2.0.0-M7|2.0.0-M6|2.0.0-M5)/.*", "https://causeway[.]apache[.]org/versions/(1.17.0|1.16.2|1.16.1|1.16.0|1.15.1|1.15.0|1.14.0|1.13.2|1.13.2|1.13.1|1.13.0|1.12.2|1.12.1|1.12.0|1.11.1|1.11.0)/.*" ], "selectors": { diff --git a/antora/components/docs/modules/ROOT/pages/about.adoc b/antora/components/docs/modules/ROOT/pages/about.adoc index 7655c9d1ff1..d5557fcb1a3 100644 --- a/antora/components/docs/modules/ROOT/pages/about.adoc +++ b/antora/components/docs/modules/ROOT/pages/about.adoc @@ -89,6 +89,7 @@ _Viewers_ _Persistence_ * xref:pjpa:ROOT:about.adoc[JPA (EclipseLink)] +* xref:querydsl:ROOT:about.adoc[QueryDSL] | diff --git a/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc b/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc index 0dc6dbdd128..08474b5f74b 100644 --- a/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc +++ b/antora/components/docs/modules/ROOT/partials/module-nav/components.adoc @@ -19,4 +19,6 @@ ** Persistence *** xref:pjpa:ROOT:about.adoc[] +*** xref:querydsl:ROOT:about.adoc[] + diff --git a/persistence/querydsl/adoc/modules/ROOT/pages/setup-and-configuration.adoc b/persistence/querydsl/adoc/modules/ROOT/pages/setup-and-configuration.adoc index a990b749560..aad48991d84 100644 --- a/persistence/querydsl/adoc/modules/ROOT/pages/setup-and-configuration.adoc +++ b/persistence/querydsl/adoc/modules/ROOT/pages/setup-and-configuration.adoc @@ -15,11 +15,108 @@ include::docs:mavendeps:partial$setup-and-configure-dependencyManagement.adoc[le This section describes the required changes to use QueryDSL if using xref:pjpa::about.adoc[JPA] as your persistence mechanism. -:querydsl-implementation: jpa -:querydsl-implementation-capitalized: Jpa -:querydsl-annotation-processor: com.querydsl.apt.jpa.JPAAnnotationProcessor - -include::partial$setup-and-configuration-for-persistence-mechanism.adoc[] +=== Dependency + +In the webapp module of your application, add the following dependency: + +[source,xml,subs="attributes+"] +.pom.xml +---- +<dependencies> + <dependency> + <groupId>org.apache.causeway.persistence</groupId> + <artifactId>causeway-persistence-querydsl-jpa</artifactId> + </dependency> +</dependencies> +---- + +=== AppManifest + +In your application's `AppManifest` (top-level Spring `@Configuration` used to bootstrap the app), import the appropriate module: + +[source,java,subs="attributes+"] +.AppManifest.java +---- +@Configuration +@Import({ + ... + CausewayModulePersistenceQueryDslJpa.class, + ... +}) +public class AppManifest { +} +---- + + +=== Module with entities + +In every module that contains entities, it's necessary to generate the "Q" classes that are used in turn to construct the queries. +This requires several changes to the module's `pom.xml` file. + +* add the build plugin ++ +[source,xml,subs="attributes+"] +.pom.xml +---- +<build> + <plugins> + ... + <plugin> + <groupId>com.mysema.maven</groupId> + <artifactId>apt-maven-plugin</artifactId> + <version>{sema-plugin-version}</version> + <executions> + <execution> + <goals> + <goal>process</goal> + </goals> + <configuration> + <outputDirectory> + target/generated-sources/java + </outputDirectory> + <processor> + com.querydsl.apt.jpa.JPAAnnotationProcessor + </processor> + </configuration> + </execution> + </executions> + </plugin> + ... + </plugins> +</build> +---- + +* add a dependency to the `querydsl-apt` annotation processor: ++ +[source,xml,subs="attributes+"] +.pom.xml +---- +<dependencies> + ... + <dependency> + <groupId>com.querydsl</groupId> + <artifactId>querydsl-apt</artifactId> + <scope>provided</scope> + </dependency> + ... +</dependencies> +---- + + +* (recommended, usually required) add a dependency to the querydsl-applib module: ++ +[source,xml,subs="attributes+"] +.pom.xml +---- +<dependencies> + ... + <dependency> + <groupId>org.apache.causeway.persistence</groupId> + <artifactId>causeway-persistence-querydsl-applib</artifactId> + </dependency> + ... +</dependencies> +---- diff --git a/persistence/querydsl/adoc/modules/ROOT/partials/setup-and-configuration-for-persistence-mechanism.adoc b/persistence/querydsl/adoc/modules/ROOT/partials/setup-and-configuration-for-persistence-mechanism.adoc deleted file mode 100644 index 90bafb7eab4..00000000000 --- a/persistence/querydsl/adoc/modules/ROOT/partials/setup-and-configuration-for-persistence-mechanism.adoc +++ /dev/null @@ -1,104 +0,0 @@ -:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...] - -=== Dependency - -In the webapp module of your application, add the following dependency: - -[source,xml,subs="attributes+"] -.pom.xml ----- -<dependencies> - <dependency> - <groupId>org.apache.causeway.persistence</groupId> - <artifactId>causeway-persistence-querydsl-{querydsl-implementation}</artifactId> - </dependency> -</dependencies> ----- - -=== AppManifest - -In your application's `AppManifest` (top-level Spring `@Configuration` used to bootstrap the app), import the appropriate module: - -[source,java,subs="attributes+"] -.AppManifest.java ----- -@Configuration -@Import({ - ... - CausewayModulePersistenceQueryDsl{querydsl-implementation-capitalized}.class, - ... -}) -public class AppManifest { -} ----- - - -=== Module with entities - -In every module that contains entities, it's necessary to generate the "Q" classes that are used in turn to construct the queries. -This requires several changes to the module's `pom.xml` file. - -* add the build plugin -+ -[source,xml,subs="attributes+"] -.pom.xml ----- -<build> - <plugins> - ... - <plugin> - <groupId>com.mysema.maven</groupId> - <artifactId>apt-maven-plugin</artifactId> - <version>{sema-plugin-version}</version> - <executions> - <execution> - <goals> - <goal>process</goal> - </goals> - <configuration> - <outputDirectory> - target/generated-sources/java - </outputDirectory> - <processor> - {querydsl-annotation-processor} - </processor> - </configuration> - </execution> - </executions> - </plugin> - ... - </plugins> -</build> ----- - -* add a dependency to the `querydsl-apt` annotation processor: -+ -[source,xml,subs="attributes+"] -.pom.xml ----- -<dependencies> - ... - <dependency> - <groupId>com.querydsl</groupId> - <artifactId>querydsl-apt</artifactId> - <scope>provided</scope> - </dependency> - ... -</dependencies> ----- - - -* (recommended, usually required) add a dependency to the querydsl-applib module: -+ -[source,xml,subs="attributes+"] -.pom.xml ----- -<dependencies> - ... - <dependency> - <groupId>org.apache.causeway.persistence</groupId> - <artifactId>causeway-persistence-querydsl-applib</artifactId> - </dependency> - ... -</dependencies> ----- diff --git a/starters/adoc/modules/parent-pom/images/pom-hierarchy.drawio.png b/starters/adoc/modules/parent-pom/images/pom-hierarchy.drawio.png index 005b5255e55..1b01389573f 100644 Binary files a/starters/adoc/modules/parent-pom/images/pom-hierarchy.drawio.png and b/starters/adoc/modules/parent-pom/images/pom-hierarchy.drawio.png differ diff --git a/starters/adoc/modules/parent-pom/pages/about.adoc b/starters/adoc/modules/parent-pom/pages/about.adoc index fb36b7abb21..fdcc66c3021 100644 --- a/starters/adoc/modules/parent-pom/pages/about.adoc +++ b/starters/adoc/modules/parent-pom/pages/about.adoc @@ -61,22 +61,21 @@ These all set up `<dependencyManagement>/<dependencies>` entries for all of the [#surefire-configuration] == Surefire Configuration -The parent pom configuresthe Maven surefire plugin to execute multiple times, based on test class suffix. -The suffixes are: +:asterisk: * -* `Test` (unit tests, if any) -+ -this will explicitly _exclude_ any integration tests, though, as defined by ... +The parent pom configures the Maven surefire plugin to execute multiple times, based on test class name. +These must match -* `IntegTest` (integ tests, if any) +* *`{asterisk}Test{asterisk}.java`* (unit tests) ++ +Test classes named "{asterisk}Testing.java", "{asterisk}IntegTest{asterisk}.java" and "{asterisk}Abstract{asterisk}.java" are all excluded. -// for 2.0.0-M6, add: -//* `IntegBddSpecs` (BDD specs, if any) +* *`{asterisk}IntegTest{asterisk}.java`* (integration tests) ++ +Test classes named "{asterisk}Abstract{asterisk}.java" are excluded. -[NOTE] -==== -in 2.0.0-M5 there is a bug in that the `default-test` (default) execution is also implicitly configured, meaning that unit tests and integ tests are executed twice, and BDD specs (if any)are executed once. +* *`{asterisk}Spec{asterisk}.java`* (Cucumber BDD specs) ++ +Test classes named "{asterisk}Test.java", "{asterisk}Testing.java", "{asterisk}IntegTest{asterisk}.java" and "{asterisk}Abstract{asterisk}.java" are all excluded. -This has been fixed for the next milestone, with a separate execution defined for BDD specs. -====
