From ae45b00647a6fbc8a0ecf0c69f4e6b537474e87a Mon Sep 17 00:00:00 2001 From: David Whitlock Date: Sun, 20 Apr 2025 14:14:31 -0700 Subject: [PATCH 1/9] Note the estimated project times for Winter 2025. --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index f54cc42..1d9c66f 100644 --- a/README.md +++ b/README.md @@ -417,7 +417,7 @@ $ git checkout main ### About how long do the projects take to complete? -Starting in the Summer of 2022, we started gathering data from students +Starting in the Winter of 2022, we started gathering data from students regarding the approximate number of hours they spend working on each project. Note that there are not as many submissions for the XML project because it only applies to the 11-week version of the course, which is not offered in the Summer. @@ -425,13 +425,13 @@ The following is a summary of the data gathered to date. | | App Classes | Text File | Pretty Print | Koans | XML | REST | Android | |:-----------|------------:|----------:|-------------:|----------:|---------:|----------:|---------:| -| Count | 116 | 116 | 112 | 97 | 55 | 104 | 105 | -| Average | 20 hours | 20 hours | 23 hours | 20 hours | 24 hours | 30 hours | 25 hours | -| Maximum | 60 hours | 120 hours | 72 hours | 100 hours | 60 hours | 129 hours | 90 hours | -| Top 25% | 25 hours | 25 hours | 30 hours | 24 hours | 30 hours | 40 hours | 30 hours | -| Median | 20 hours | 19 hours | 20 hours | 16 hours | 21 hours | 25 hours | 24 hours | -| Bottom 25% | 12 hours | 12 hours | 12 hours | 10 hours | 16 hours | 15 hours | 17 hours | -| Minimum | 3 hours | 0 hours | 2 hours | 4 hours | 8 hours | 8 hours | 7 hours | +| Count | 142 | 142 | 138 | 122 | 80 | 129 | 130 | +| Average | 21 hours | 20 hours | 23 hours | 19 hours | 24 hours | 30 hours | 26 hours | +| Maximum | 60 hours | 120 hours | 76 hours | 100 hours | 60 hours | 129 hours | 90 hours | +| Top 25% | 25 hours | 25 hours | 30 hours | 23 hours | 30 hours | 40 hours | 30 hours | +| Median | 20 hours | 20 hours | 20 hours | 16 hours | 20 hours | 25 hours | 24 hours | +| Bottom 25% | 12 hours | 12 hours | 12 hours | 10 hours | 15 hours | 16 hours | 17 hours | +| Minimum | 3 hours | 0 hours | 2 hours | 4 hours | 6 hours | 7 hours | 5 hours | You may want to consider it as you plan your projects. Recall, though, that this data is self-reported. Your experience might be different from that From a19b7c60697b70113fcce19ef3435578fe352399 Mon Sep 17 00:00:00 2001 From: David Whitlock Date: Sat, 26 Apr 2025 06:54:39 -0700 Subject: [PATCH 2/9] Require Java 21 or later. --- .github/workflows/maven.yml | 2 +- prerequisites.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index e316797..d14a533 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [ '17', '22' ] + java: [ '21', '24' ] name: JDK ${{ matrix.Java }} steps: - uses: actions/checkout@v3 diff --git a/prerequisites.sh b/prerequisites.sh index 725f1dc..b9aaf8a 100644 --- a/prerequisites.sh +++ b/prerequisites.sh @@ -50,8 +50,8 @@ function checkForJava() { if [[ "$_java" ]]; then version=$("$_java" -version 2>&1 | awk -F '"' '/version/ {print $2}') - minimumVersion="11" - echo You are running Java version "$version" + minimumVersion="21" + echo "You are running Java version \"$version\"" if [[ "$version" > "$minimumVersion" ]]; then echo This version of Java is sufficient for this course return 0 From f768cacad880a4b58ffcd5ff5030df54bf27ef50 Mon Sep 17 00:00:00 2001 From: David Whitlock Date: Sat, 24 May 2025 07:17:43 -0700 Subject: [PATCH 3/9] Update README to refer to Summer 2025. --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 1d9c66f..bed8af1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Java CI with Maven](https://github.com/YourGitHubId/JoyOfCodingWinter2025/actions/workflows/maven.yml/badge.svg)](https://github.com/YourGitHubId/JoyOfCodingWinter2025/actions/workflows/maven.yml) +[![Java CI with Maven](https://github.com/YourGitHubId/JoyOfCodingSummer2025/actions/workflows/maven.yml/badge.svg)](https://github.com/YourGitHubId/JoyOfCodingSummer2025/actions/workflows/maven.yml) # Getting Started with The Joy of Coding with Java and Android @@ -71,7 +71,7 @@ developer"](https://education.github.com/pack) account that gives you free private repositories. Then [create a private GitHub repository from this "template" repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) for your source code for this course. (In this example, the -repository is named "JoyOfCodingWinter2025".) +repository is named "JoyOfCodingSummer2025".) Again, please ensure that all of your code for the assignments is in a **private** GitHub repository. GitHub makes it very easy for people to @@ -99,7 +99,7 @@ The following command lines assume that you are running in the directory created by cloning the repository. ```sh -$ cd JoyOfCodingWinter2025 +$ cd JoyOfCodingSummer2025 ``` ### How do I use the Java Development Kit? @@ -226,7 +226,7 @@ clone by adding the directory to git. ```sh $ ./mvnw clean # Remove files that shouldn't be committed to version control -$ cd .. # to JoyOfCodingWinter2025 directory +$ cd .. # to JoyOfCodingSummer2025 directory $ git add student $ git commit -m "Added source files for student project" ``` @@ -285,7 +285,7 @@ After `ssh`ing to one of the CS Department's Linux machines, you can make a clone of your GitHub repository using with: ``` -$ git clone https://github.com/YourGitHubId/JoyOfCodingWinter2025.git +$ git clone https://github.com/YourGitHubId/JoyOfCodingSummer2025.git ``` ### How can I get changes that other people make into my clone? @@ -299,7 +299,7 @@ First, configure your repository to have this repository to be a "remote" named "upstream". ```sh -$ cd JoyOfCodingWinter2025 +$ cd JoyOfCodingSummer2025 $ git remote add upstream https://github.com/JoyOfCodingPDX/GettingStarted.git ``` @@ -461,8 +461,8 @@ As you create Maven projects in this repository, you may encounter warnings like ``` [WARNING] -[WARNING] Some problems were encountered while building the effective model for edu.pdx.cs.joy.whitlock:airline:jar:1.0.0 -[WARNING] 'parent.relativePath' of POM edu.pdx.cs.joy.whitlock:airline:1.0.0 (JoyOfCodingWinter2025/airline/pom.xml) points at edu.pdx.cs.joy.whitlock:JoyOfCodingWinter2025 instead of io.github.davidwhitlock.joy:joy, please verify your project structure @ line 3, column 11 +[WARNING] Some problems were encountered while building the effective model for edu.pdx.cs.joy.whitlock:apptbook:jar:1.0.0 +[WARNING] 'parent.relativePath' of POM edu.pdx.cs.joy.whitlock:apptbook:1.0.0 (JoyOfCodingSummer2025/apptbook/pom.xml) points at edu.pdx.cs.joy.whitlock:JoyOfCodingSummer2025 instead of io.github.davidwhitlock.joy:joy, please verify your project structure @ line 3, column 11 [WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. [WARNING] @@ -481,7 +481,7 @@ When created, the `pom.xml` files for the projects specify a parent of _my_ top- joy io.github.davidwhitlock.joy - 1.0.0 + 1.2.2 ``` @@ -570,7 +570,7 @@ Running `mvn site` from the root directory of this repository will generate a website that provides lots of information (reports, etc.) about the Maven projects. Note that in order for your multi-project Maven site to generate correctly, the subprojects must specify that -their parent project is the `JoyOfCodingWinter2025` project in +their parent project is the `JoyOfCodingSummer2025` project in your group: ```xml @@ -613,7 +613,7 @@ You can open `target/staging/index.html` in your web browse to see what your site will look like. Verify that your website is available at a URL like: -https://yourgithubuser.github.io/JoyOfCodingWinter2025 +https://yourgithubuser.github.io/JoyOfCodingSummer2025 ## How can I improve this repository? From 7412c9c4ee74702f8f4b2b0e69a7be9bf2235a6c Mon Sep 17 00:00:00 2001 From: David Whitlock Date: Sat, 24 May 2025 07:19:34 -0700 Subject: [PATCH 4/9] We're doing the Appointment Book project this term. --- createFirstProject.sh | 2 +- createRESTProject.sh | 2 +- submit.sh | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/createFirstProject.sh b/createFirstProject.sh index 07d3a4b..4004ebb 100755 --- a/createFirstProject.sh +++ b/createFirstProject.sh @@ -13,4 +13,4 @@ else fi fi -createProjectFromArchetype ${loginId} "airline" "2.2.0" +createProjectFromArchetype ${loginId} "apptbook" "2.2.0" diff --git a/createRESTProject.sh b/createRESTProject.sh index f936173..6ecb023 100755 --- a/createRESTProject.sh +++ b/createRESTProject.sh @@ -13,4 +13,4 @@ else fi fi -createProjectFromArchetype ${loginId} "airline-web" "3.0.0" +createProjectFromArchetype ${loginId} "apptbook-web" "3.0.0" diff --git a/submit.sh b/submit.sh index 643e468..512cfc6 100755 --- a/submit.sh +++ b/submit.sh @@ -30,15 +30,15 @@ elif [[ "$project" == "koans" ]]; then mavenGoals="clean exec:java" elif [[ "$project" == "Project5" ]]; then - directory="airline-web" + directory="apptbook-web" elif [[ "$project" == "Project6" ]]; then - directory="airline-android" + directory="apptbook-android" submitClass="SubmitAndroidProject" srcDirectory="." else - directory="airline" + directory="apptbook" fi if [ $# -gt 1 ]; then From e2d2dcad3fd77edf6ed6ada1a75614111e08c2ed Mon Sep 17 00:00:00 2001 From: David Whitlock Date: Sat, 24 May 2025 07:20:24 -0700 Subject: [PATCH 5/9] Since it's the Summer, the web project is Project 4 and the Android project is Project 5. --- submit.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/submit.sh b/submit.sh index 512cfc6..897473a 100755 --- a/submit.sh +++ b/submit.sh @@ -29,10 +29,10 @@ elif [[ "$project" == "koans" ]]; then directory="koans" mavenGoals="clean exec:java" -elif [[ "$project" == "Project5" ]]; then +elif [[ "$project" == "Project4" ]]; then directory="apptbook-web" -elif [[ "$project" == "Project6" ]]; then +elif [[ "$project" == "Project5" ]]; then directory="apptbook-android" submitClass="SubmitAndroidProject" srcDirectory="." From c41ac7bd3286e5b8ed2f44e7926dadae420dabb4 Mon Sep 17 00:00:00 2001 From: David Whitlock Date: Sat, 24 May 2025 07:24:04 -0700 Subject: [PATCH 6/9] Use Summer 2025 SNAPSHOT versions of archetypes and dependencies. --- createFirstProject.sh | 2 +- createKataProject.sh | 2 +- createKoansProject.sh | 2 +- createRESTProject.sh | 2 +- createStudentProject.sh | 2 +- pom.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/createFirstProject.sh b/createFirstProject.sh index 4004ebb..b7b4715 100755 --- a/createFirstProject.sh +++ b/createFirstProject.sh @@ -13,4 +13,4 @@ else fi fi -createProjectFromArchetype ${loginId} "apptbook" "2.2.0" +createProjectFromArchetype ${loginId} "apptbook" "2.2.2-SNAPSHOT" diff --git a/createKataProject.sh b/createKataProject.sh index a93b79f..2c011a9 100755 --- a/createKataProject.sh +++ b/createKataProject.sh @@ -15,4 +15,4 @@ fi projectName=$1 teamName=$2 -createProjectFromArchetype ${teamName} "kata" "2.2.0" ${projectName} +createProjectFromArchetype ${teamName} "kata" "2.2.2-SNAPSHOT" ${projectName} diff --git a/createKoansProject.sh b/createKoansProject.sh index 035a2ec..64297cd 100755 --- a/createKoansProject.sh +++ b/createKoansProject.sh @@ -13,4 +13,4 @@ else fi fi -createProjectFromArchetype ${loginId} "java-koans" "2.2.0" "koans" +createProjectFromArchetype ${loginId} "java-koans" "2.2.2-SNAPSHOT" "koans" diff --git a/createRESTProject.sh b/createRESTProject.sh index 6ecb023..4a900b5 100755 --- a/createRESTProject.sh +++ b/createRESTProject.sh @@ -13,4 +13,4 @@ else fi fi -createProjectFromArchetype ${loginId} "apptbook-web" "3.0.0" +createProjectFromArchetype ${loginId} "apptbook-web" "3.0.2-SNAPSHOT" diff --git a/createStudentProject.sh b/createStudentProject.sh index fd6f5e9..7028bf5 100755 --- a/createStudentProject.sh +++ b/createStudentProject.sh @@ -13,5 +13,5 @@ else fi fi -createProjectFromArchetype ${loginId} "student" "2.3.0" +createProjectFromArchetype ${loginId} "student" "2.3.3-SNAPSHOT" diff --git a/pom.xml b/pom.xml index 2cefeee..73f945d 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ accordingly joy io.github.davidwhitlock.joy - 1.2.0 + 1.2.2-SNAPSHOT edu.pdx.cs.joy.YourUserId JoyOfCoding From a73ed60a56b2a85d184ef0793c113192b63964cc Mon Sep 17 00:00:00 2001 From: David Whitlock Date: Sat, 24 May 2025 07:25:15 -0700 Subject: [PATCH 7/9] Update a couple more references to Summer 2025. --- pom.xml | 12 ++++++------ src/site/site.xml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 73f945d..88e28ac 100644 --- a/pom.xml +++ b/pom.xml @@ -19,9 +19,9 @@ accordingly 1.0.0 pom - JoyOfCodingWinter2025 + JoyOfCodingSummer2025 Source code written in the Summer 2025 offering of The Joy of Coding - http://YourGitHubUserInLowerCase.github.io/JoyOfCodingWinter2025 + http://YourGitHubUserInLowerCase.github.io/JoyOfCodingSummer2025 @@ -33,7 +33,7 @@ accordingly github - https://github.com/YourGitHubUser/JoyOfCodingWinter2025/issues + https://github.com/YourGitHubUser/JoyOfCodingSummer2025/issues @@ -76,7 +76,7 @@ accordingly maven-site-plugin - scm:git:git@github.com:YourGithubUser/JoyOfCodingWinter2025.git + scm:git:git@github.com:YourGithubUser/JoyOfCodingSummer2025.git @@ -92,7 +92,7 @@ accordingly - scm:git:git@github.com:YourGithubUser/JoyOfCodingWinter2025.git + scm:git:git@github.com:YourGithubUser/JoyOfCodingSummer2025.git @@ -102,7 +102,7 @@ accordingly gh-pages GitHub Pages - scm:git:git@github.com:YourGithubUser/JoyOfCodingWinter2025.git + scm:git:git@github.com:YourGithubUser/JoyOfCodingSummer2025.git diff --git a/src/site/site.xml b/src/site/site.xml index c3d5e22..4ff9e58 100644 --- a/src/site/site.xml +++ b/src/site/site.xml @@ -17,7 +17,7 @@ true - YourGitHubUser/JoyOfCodingWinter2025 + YourGitHubUser/JoyOfCodingSummer2025 right black From 6450448e68a043d3ee6f65cb4b1c0900f8fcba90 Mon Sep 17 00:00:00 2001 From: David Whitlock Date: Sat, 24 May 2025 07:26:57 -0700 Subject: [PATCH 8/9] Use Maven Central Snapshot repository. --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 88e28ac..3560f52 100644 --- a/pom.xml +++ b/pom.xml @@ -59,9 +59,9 @@ accordingly - maven-snapshots - https://s01.oss.sonatype.org/content/repositories/snapshots - default + Central Portal Snapshots + central-portal-snapshots + https://central.sonatype.com/repository/maven-snapshots/ false From a13903f69005cbcb29e8cf4115d1f7e9c0a7fee3 Mon Sep 17 00:00:00 2001 From: David Whitlock Date: Sun, 1 Jun 2025 19:31:23 -0700 Subject: [PATCH 9/9] Use released versions of Maven artifacts. --- createFirstProject.sh | 2 +- createKataProject.sh | 2 +- createKoansProject.sh | 2 +- createRESTProject.sh | 2 +- createStudentProject.sh | 2 +- pom.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/createFirstProject.sh b/createFirstProject.sh index b7b4715..b2cfa24 100755 --- a/createFirstProject.sh +++ b/createFirstProject.sh @@ -13,4 +13,4 @@ else fi fi -createProjectFromArchetype ${loginId} "apptbook" "2.2.2-SNAPSHOT" +createProjectFromArchetype ${loginId} "apptbook" "2.2.2" diff --git a/createKataProject.sh b/createKataProject.sh index 2c011a9..c7cbc13 100755 --- a/createKataProject.sh +++ b/createKataProject.sh @@ -15,4 +15,4 @@ fi projectName=$1 teamName=$2 -createProjectFromArchetype ${teamName} "kata" "2.2.2-SNAPSHOT" ${projectName} +createProjectFromArchetype ${teamName} "kata" "2.2.2" ${projectName} diff --git a/createKoansProject.sh b/createKoansProject.sh index 64297cd..f2f6880 100755 --- a/createKoansProject.sh +++ b/createKoansProject.sh @@ -13,4 +13,4 @@ else fi fi -createProjectFromArchetype ${loginId} "java-koans" "2.2.2-SNAPSHOT" "koans" +createProjectFromArchetype ${loginId} "java-koans" "2.2.2" "koans" diff --git a/createRESTProject.sh b/createRESTProject.sh index 4a900b5..8d4921f 100755 --- a/createRESTProject.sh +++ b/createRESTProject.sh @@ -13,4 +13,4 @@ else fi fi -createProjectFromArchetype ${loginId} "apptbook-web" "3.0.2-SNAPSHOT" +createProjectFromArchetype ${loginId} "apptbook-web" "3.0.2" diff --git a/createStudentProject.sh b/createStudentProject.sh index 7028bf5..aa94164 100755 --- a/createStudentProject.sh +++ b/createStudentProject.sh @@ -13,5 +13,5 @@ else fi fi -createProjectFromArchetype ${loginId} "student" "2.3.3-SNAPSHOT" +createProjectFromArchetype ${loginId} "student" "2.3.3" diff --git a/pom.xml b/pom.xml index 3560f52..a0a2632 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ accordingly joy io.github.davidwhitlock.joy - 1.2.2-SNAPSHOT + 1.2.2 edu.pdx.cs.joy.YourUserId JoyOfCoding