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

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

commit 52378bbd6ee1b46eb9cabd864c976925fb0144ac
Author: Dan Haywood <[email protected]>
AuthorDate: Thu May 30 06:47:51 2024 +0100

    CAUSEWAY-2873: introduces configurable tag version for the petclinic 
tutorial
---
 antora/components/tutorials/antora.yml             |  6 +++
 .../tutorials/modules/petclinic/pages/.gitignore   |  1 +
 .../petclinic/pages/010-getting-started.adoc       | 13 +++--
 .../petclinic/pages/020-the-petclinic-domain.adoc  | 26 +++++-----
 .../petclinic/pages/030-petowner-entity.adoc       | 60 +++++++++++-----------
 .../modules/petclinic/pages/040-pet-entity.adoc    | 32 ++++++------
 .../modules/petclinic/pages/050-visit-entity.adoc  | 16 +++---
 .../modules/petclinic/pages/060-unit-testing.adoc  |  4 +-
 .../modules/petclinic/pages/070-modularity.adoc    |  4 +-
 .../modules/petclinic/pages/080-view-models.adoc   |  8 +--
 .../petclinic/pages/090-integration-testing.adoc   |  4 +-
 .../further-business-logic-worked-examples.txt     | 28 +++++-----
 12 files changed, 104 insertions(+), 98 deletions(-)

diff --git a/antora/components/tutorials/antora.yml 
b/antora/components/tutorials/antora.yml
index 31b8a0c3c0..798de463ec 100644
--- a/antora/components/tutorials/antora.yml
+++ b/antora/components/tutorials/antora.yml
@@ -23,3 +23,9 @@ nav:
   - modules/ROOT/nav.adoc
   - modules/petclinic/nav.adoc
 
+asciidoc:
+  attributes:
+    tag-version: 'v2'
+    jdk-version: '11'
+    #tag-version: 'v3'
+    #jdk-version: '21'
diff --git a/antora/components/tutorials/modules/petclinic/pages/.gitignore 
b/antora/components/tutorials/modules/petclinic/pages/.gitignore
new file mode 100644
index 0000000000..0b76f26d92
--- /dev/null
+++ b/antora/components/tutorials/modules/petclinic/pages/.gitignore
@@ -0,0 +1 @@
+.asciidoctor/
\ No newline at end of file
diff --git 
a/antora/components/tutorials/modules/petclinic/pages/010-getting-started.adoc 
b/antora/components/tutorials/modules/petclinic/pages/010-getting-started.adoc
index 81729ac643..677e4ffba2 100644
--- 
a/antora/components/tutorials/modules/petclinic/pages/010-getting-started.adoc
+++ 
b/antora/components/tutorials/modules/petclinic/pages/010-getting-started.adoc
@@ -8,7 +8,7 @@
 
 You'll need:
 
-* Java 11
+* Java {jdk-version}
 +
 Apache Causeway works up to at least Java 21, but stick with Java 11 for now.
 
@@ -24,7 +24,6 @@ This has multiple tags for the various checkpoints so you can 
pick up the tutori
 * a Java IDE with support for Maven.
 +
 The Apache Causeway website has detailed documentation for setting up to use 
xref:setupguide:intellij:about.adoc[IntelliJ] or 
xref:setupguide:eclipse:about.adoc[Eclipse].
-+
 For this tutorial, also make sure that your IDE is configured to support 
Lombok.
 
 
@@ -42,7 +41,7 @@ We start the tutorial simply with a copy of 
xref:docs:starters:simpleapp.adoc[Si
 
 * Clone the repo:
 +
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
 git clone https://github.com/apache/causeway-app-petclinic
 ----
@@ -53,9 +52,9 @@ This will make it easier to inspect differences between 
different tags.
 
 * Checkout the first tag, and build:
 +
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/01-01-starter-app
+git checkout tags/{tag-version}/01-01-starter-app
 mvn clean install
 ----
 +
@@ -63,7 +62,7 @@ mvn clean install
 ====
 The code at this tag was created by copying the `v2-jpa` tag of 
xref:docs:starters:simpleapp.adoc[SimpleApp]:
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
 curl https://codeload.github.com/apache/causeway-app-simpleapp/zip/v2-jpa | 
jar xv
 ----
@@ -71,7 +70,7 @@ curl 
https://codeload.github.com/apache/causeway-app-simpleapp/zip/v2-jpa | jar
 
 * run the app:
 +
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
 mvn -pl webapp spring-boot:run
 ----
diff --git 
a/antora/components/tutorials/modules/petclinic/pages/020-the-petclinic-domain.adoc
 
b/antora/components/tutorials/modules/petclinic/pages/020-the-petclinic-domain.adoc
index 7aa9e49d9f..1301bc73b0 100644
--- 
a/antora/components/tutorials/modules/petclinic/pages/020-the-petclinic-domain.adoc
+++ 
b/antora/components/tutorials/modules/petclinic/pages/020-the-petclinic-domain.adoc
@@ -51,9 +51,9 @@ We'll also leave the `simple` module untouched, to use as a 
reference.
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/02-01-copies-SimpleObject-to-PetOwner
+git checkout tags/{tag-version}/02-01-copies-SimpleObject-to-PetOwner
 mvn clean install
 mvn -pl webapp spring-boot:run
 ----
@@ -106,14 +106,14 @@ In addition, the new Maven module was defined in the 
top-level `pom.xml`, and in
 
 Confirm that the code still builds:
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
 mvn install
 ----
 
 However, if you run the app confirm that it is still showing just the original 
`simpleapp` module:
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
 mvn -pl webapp spring-boot:run
 ----
@@ -126,7 +126,7 @@ We'll fix this in the next exercise.
 
 We have our new `petowner` module, but we're not actually using it; if we run 
the application we still see the original `simpleapp` module.
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
 mvn -pl webapp spring-boot:run
 ----
@@ -136,9 +136,9 @@ In this exercise we'll update the app to include 
`petowners` as well.
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/02-02-configure-the-app-to-include-petowner
+git checkout tags/{tag-version}/02-02-configure-the-app-to-include-petowner
 mvn clean install
 mvn -pl webapp spring-boot:run
 ----
@@ -208,9 +208,9 @@ In this exercise we'll add a security role to grant access 
to our new `petowner`
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/02-03-add-security-role-for-petowner
+git checkout tags/{tag-version}/02-03-add-security-role-for-petowner
 mvn clean install
 mvn -pl webapp spring-boot:run
 ----
@@ -305,9 +305,9 @@ Let's now update the menu bar so that the actions to create 
``PetOwner``s live u
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/02-04-update-menubar-for-petowners
+git checkout tags/{tag-version}/02-04-update-menubar-for-petowners
 mvn clean install
 mvn -pl webapp spring-boot:run
 ----
@@ -357,9 +357,9 @@ This will allow us to quickly create a whole set of 
`PetOwner` objects from the
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/02-05-setup-demo-petowners
+git checkout tags/{tag-version}/02-05-setup-demo-petowners
 mvn clean install
 mvn -pl webapp spring-boot:run
 ----
diff --git 
a/antora/components/tutorials/modules/petclinic/pages/030-petowner-entity.adoc 
b/antora/components/tutorials/modules/petclinic/pages/030-petowner-entity.adoc
index f2d9e93527..c5cc45181d 100644
--- 
a/antora/components/tutorials/modules/petclinic/pages/030-petowner-entity.adoc
+++ 
b/antora/components/tutorials/modules/petclinic/pages/030-petowner-entity.adoc
@@ -14,9 +14,9 @@ We'll also update the fixture script.
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-01-adds-PetOwner-knownAs-property
+git checkout tags/{tag-version}/03-01-adds-PetOwner-knownAs-property
 mvn clean install
 mvn -pl webapp spring-boot:run
 ----
@@ -116,9 +116,9 @@ To do that, we need to define the title imperatively, using 
the xref:refguide:ap
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-02-define-PetOwner-title-imperatively
+git checkout tags/{tag-version}/03-02-define-PetOwner-title-imperatively
 mvn clean install
 mvn -pl webapp spring-boot:run
 ----
@@ -154,9 +154,9 @@ We'll make these changes in this exercise.
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-03-remaining-PetOwner-properties
+git checkout tags/{tag-version}/03-03-remaining-PetOwner-properties
 mvn clean install
 mvn -pl webapp spring-boot:run
 ----
@@ -235,9 +235,9 @@ Let's update the app to see some other properties we added 
in the previous exerc
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-04-list-new-properties-of-PetOwner
+git checkout tags/{tag-version}/03-04-list-new-properties-of-PetOwner
 mvn clean install
 mvn -pl webapp spring-boot:run
 ----
@@ -277,9 +277,9 @@ We can also leverage 
link:https://docs.spring.io/spring-boot/docs/current/refere
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-05-initial-fixture-script
+git checkout tags/{tag-version}/03-05-initial-fixture-script
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -350,9 +350,9 @@ In this exercise, we'll refactor the home page view model 
to show a list of ``Pe
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-06-update-home-page-to-show-pet-owners
+git checkout tags/{tag-version}/03-06-update-home-page-to-show-pet-owners
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -414,9 +414,9 @@ In this exercise we'll simplify that workflow by allowing 
the additional details
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-07-modifies-PetOwners-create-action
+git checkout tags/{tag-version}/03-07-modifies-PetOwners-create-action
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -472,9 +472,9 @@ In this exercise we'll change the prompt style for both a 
service (menu) action,
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-08-prompt-styles
+git checkout tags/{tag-version}/03-08-prompt-styles
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -578,9 +578,9 @@ In this exercise we'll see how easy it is to create such a 
derived property.
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-09-derived-days-since-last-visit-property
+git checkout tags/{tag-version}/03-09-derived-days-since-last-visit-property
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -664,9 +664,9 @@ In this exercise we'll use the same approach, introducing a 
meta-annotation to c
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-10-use-meta-annotations-to-reduce-duplication
+git checkout 
tags/{tag-version}/03-10-use-meta-annotations-to-reduce-duplication
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -743,9 +743,9 @@ We can fix this by adding rules to their respective 
meta-annotations.
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-11-validation-rules-using-metaannotations
+git checkout tags/{tag-version}/03-11-validation-rules-using-metaannotations
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -814,9 +814,9 @@ In this exercise we'll move this constraint onto the 
`@Name` meta-annotation ins
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-12-moves-validation-onto-metaannotation
+git checkout tags/{tag-version}/03-12-moves-validation-onto-metaannotation
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -875,9 +875,9 @@ For email address, we'll use a single string, so it's a 
scalar value type.
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-13-scalar-custom-value-type-for-email-address
+git checkout 
tags/{tag-version}/03-13-scalar-custom-value-type-for-email-address
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -1082,9 +1082,9 @@ This has the benefit of being dynamic; we can move fields 
around in the layout w
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-14-use-layout-xml-for-ui-semantics
+git checkout tags/{tag-version}/03-14-use-layout-xml-for-ui-semantics
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -1270,9 +1270,9 @@ In this exercise, we'll replace the icon for `PetOwner`.
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/03-15-change-pet-owner-icon-png
+git checkout tags/{tag-version}/03-15-change-pet-owner-icon-png
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
diff --git 
a/antora/components/tutorials/modules/petclinic/pages/040-pet-entity.adoc 
b/antora/components/tutorials/modules/petclinic/pages/040-pet-entity.adoc
index fbc2fcea6e..79a15feed1 100644
--- a/antora/components/tutorials/modules/petclinic/pages/040-pet-entity.adoc
+++ b/antora/components/tutorials/modules/petclinic/pages/040-pet-entity.adoc
@@ -19,9 +19,9 @@ In this exercise we'll just create the outline of the `Pet` 
entity, and ensure i
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/04-01-pet-entity-key-properties
+git checkout tags/{tag-version}/04-01-pet-entity-key-properties
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -157,9 +157,9 @@ At the moment we're "flying blind" because we don't have 
any demo `Pet` instance
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/04-02-pet-ui-and-layout-semantics
+git checkout tags/{tag-version}/04-02-pet-ui-and-layout-semantics
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -299,9 +299,9 @@ In this next exercise we'll add the ``PetOwner``'s 
collection of ``Pet``s.
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/04-03-PetOwner-pets-collection
+git checkout tags/{tag-version}/04-03-PetOwner-pets-collection
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -371,9 +371,9 @@ So in this exercise we'll add two actions on `PetOwner`: 
one to add a `Pet` and
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/04-04-add-remove-pets
+git checkout tags/{tag-version}/04-04-add-remove-pets
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -424,9 +424,9 @@ In this exercise we'll extend the fixture data so that each 
of our pet owners ha
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/04-05-extend-fixture-data-to-add-in-pets
+git checkout tags/{tag-version}/04-05-extend-fixture-data-to-add-in-pets
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -485,9 +485,9 @@ In this exercise we'll introduce a simple business rule: 
every owner's pet must
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/04-06-unique-pet-names-validation
+git checkout tags/{tag-version}/04-06-unique-pet-names-validation
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -552,9 +552,9 @@ So, we need to add a `species`, and some `notes`.
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/04-07-pet-remaining-properties
+git checkout tags/{tag-version}/04-07-pet-remaining-properties
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -676,9 +676,9 @@ This is what we'll quickly tackle in this exercise.
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/04-08-dynamic-icons
+git checkout tags/{tag-version}/04-08-dynamic-icons
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
diff --git 
a/antora/components/tutorials/modules/petclinic/pages/050-visit-entity.adoc 
b/antora/components/tutorials/modules/petclinic/pages/050-visit-entity.adoc
index 54f86354bb..06300e0cc3 100644
--- a/antora/components/tutorials/modules/petclinic/pages/050-visit-entity.adoc
+++ b/antora/components/tutorials/modules/petclinic/pages/050-visit-entity.adoc
@@ -20,9 +20,9 @@ In this exercise we'll just create an empty visits module.
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/05-01-visit-module
+git checkout tags/{tag-version}/05-01-visit-module
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -122,9 +122,9 @@ In this exercise we'll fix this, so that:
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/05-02-visit-module-dependencies
+git checkout tags/{tag-version}/05-02-visit-module-dependencies
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -204,9 +204,9 @@ We'll start just with the key properties.
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/05-03-visit-entity-key-properties
+git checkout tags/{tag-version}/05-03-visit-entity-key-properties
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -392,9 +392,9 @@ We'll also create a mixin _collection_ to be able to view 
the visits from a ``Pe
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/05-04-book-visit-action
+git checkout tags/{tag-version}/05-04-book-visit-action
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
diff --git 
a/antora/components/tutorials/modules/petclinic/pages/060-unit-testing.adoc 
b/antora/components/tutorials/modules/petclinic/pages/060-unit-testing.adoc
index 16974aebd8..ff83b6846a 100644
--- a/antora/components/tutorials/modules/petclinic/pages/060-unit-testing.adoc
+++ b/antora/components/tutorials/modules/petclinic/pages/060-unit-testing.adoc
@@ -16,9 +16,9 @@ In this section we'll write a unit test to verify this logic, 
using Mockito to "
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/06-01-unit-test-bookVisit-default-time
+git checkout tags/{tag-version}/06-01-unit-test-bookVisit-default-time
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
diff --git 
a/antora/components/tutorials/modules/petclinic/pages/070-modularity.adoc 
b/antora/components/tutorials/modules/petclinic/pages/070-modularity.adoc
index 6959ca089c..3e58e536c4 100644
--- a/antora/components/tutorials/modules/petclinic/pages/070-modularity.adoc
+++ b/antora/components/tutorials/modules/petclinic/pages/070-modularity.adoc
@@ -35,9 +35,9 @@ In this exercise we'll use domain events to cascade delete or 
to veto the action
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/07-01-delete-action-events
+git checkout tags/{tag-version}/07-01-delete-action-events
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
diff --git 
a/antora/components/tutorials/modules/petclinic/pages/080-view-models.adoc 
b/antora/components/tutorials/modules/petclinic/pages/080-view-models.adoc
index df22c489d2..c66a251ca6 100644
--- a/antora/components/tutorials/modules/petclinic/pages/080-view-models.adoc
+++ b/antora/components/tutorials/modules/petclinic/pages/080-view-models.adoc
@@ -18,9 +18,9 @@ In this exercise we'll extend the home page by displaying 
additional data in new
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/08-01-home-page-additional-collections
+git checkout tags/{tag-version}/08-01-home-page-additional-collections
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
@@ -142,9 +142,9 @@ In this exercise we'll extend the home page by providing a 
convenience action to
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/08-02-home-page-bookVisit-convenience-action
+git checkout tags/{tag-version}/08-02-home-page-bookVisit-convenience-action
 mvn clean install
 mvn -pl webapp spring-boot:run 
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
 ----
diff --git 
a/antora/components/tutorials/modules/petclinic/pages/090-integration-testing.adoc
 
b/antora/components/tutorials/modules/petclinic/pages/090-integration-testing.adoc
index c9c00c910f..bc923a72f6 100644
--- 
a/antora/components/tutorials/modules/petclinic/pages/090-integration-testing.adoc
+++ 
b/antora/components/tutorials/modules/petclinic/pages/090-integration-testing.adoc
@@ -17,9 +17,9 @@ In this exercise we'll test the `bookVisit` mixin action (on 
`Pet` entity).
 
 === Solution
 
-[source,bash]
+[source,bash,subs="attributes+"]
 ----
-git checkout tags/09-01-bookVisit-integ-test
+git checkout tags/{tag-version}/09-01-bookVisit-integ-test
 mvn clean install
 ----
 
diff --git 
a/antora/components/tutorials/modules/petclinic/pages/further-business-logic-worked-examples.txt
 
b/antora/components/tutorials/modules/petclinic/pages/further-business-logic-worked-examples.txt
index 0a7d8394a3..016e26d378 100644
--- 
a/antora/components/tutorials/modules/petclinic/pages/further-business-logic-worked-examples.txt
+++ 
b/antora/components/tutorials/modules/petclinic/pages/further-business-logic-worked-examples.txt
@@ -32,9 +32,9 @@
 //
 //=== Solution
 //
-//[source,bash]
+//[source,bash,subs="attributes+"]
 //----
-//git checkout tags/330-enter-an-outcome
+//git checkout tags/{tag-version}/330-enter-an-outcome
 //mvn clean package jetty:run
 //----
 //
@@ -153,9 +153,9 @@
 //
 //=== Solution
 //
-//[source,bash]
+//[source,bash,subs="attributes+"]
 //----
-//git checkout tags/340-pay-for-a-visit
+//git checkout tags/{tag-version}/340-pay-for-a-visit
 //mvn clean package jetty:run
 //----
 //
@@ -255,9 +255,9 @@
 //
 //=== Solution
 //
-//[source,bash]
+//[source,bash,subs="attributes+"]
 //----
-//git checkout tags/350-prevent-payment-for-a-visit-twice
+//git checkout tags/{tag-version}/350-prevent-payment-for-a-visit-twice
 //mvn clean package jetty:run
 //----
 //
@@ -321,9 +321,9 @@
 //
 //=== Solution
 //
-//[source,bash]
+//[source,bash,subs="attributes+"]
 //----
-//git checkout tags/360-find-visits-not-yet-paid-and-overdue
+//git checkout tags/{tag-version}/360-find-visits-not-yet-paid-and-overdue
 //mvn clean package jetty:run
 //----
 //
@@ -439,9 +439,9 @@
 //
 //=== Solution
 //
-//[source,bash]
+//[source,bash,subs="attributes+"]
 //----
-//git checkout tags/370-digression-hiding-columns-in-tables
+//git checkout tags/{tag-version}/370-digression-hiding-columns-in-tables
 //mvn clean package jetty:run
 //----
 //
@@ -509,9 +509,9 @@
 //
 //=== Solution
 //
-//[source,bash]
+//[source,bash,subs="attributes+"]
 //----
-//git checkout tags/380-another-digression-icons-and-css
+//git checkout tags/{tag-version}/380-another-digression-icons-and-css
 //mvn clean package jetty:run
 //----
 //
@@ -561,9 +561,9 @@
 //
 //=== Solution
 //
-//[source,bash]
+//[source,bash,subs="attributes+"]
 //----
-//git checkout tags/390-delete-an-owner-provided-no-unpaid-visits
+//git checkout tags/{tag-version}/390-delete-an-owner-provided-no-unpaid-visits
 //mvn clean package jetty:run
 //----
 //

Reply via email to