From 6fb32fd85e5d4379f32570d18b180521fcc952eb Mon Sep 17 00:00:00 2001 From: maximthomas Date: Thu, 29 Jan 2026 16:14:28 +0300 Subject: [PATCH 01/11] Add OpenAM secondary instances to the Docker test in build.yml --- .github/workflows/build.yml | 86 +++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9aa1bda288..9d393dd189 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -153,3 +153,89 @@ jobs: http://openam.example.org:8080/openam/json/authenticate | grep tokenId' docker inspect --format="{{json .State.Health.Status}}" test-openam | grep -q \"healthy\" + + echo "Add another two OpenAM servers to the cluster" + + docker run --rm -it -d --memory="2g" -h openam2.example.org --name=test-openam2 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} + + echo "waiting for OpenAM-2 to be alive..." + timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test-openam2 | grep -q \"healthy\"; do sleep 10; done' + + docker exec -w '/usr/openam/ssoconfiguratortools' test-openam2 bash -c \ + 'echo "ACCEPT_LICENSES=true + SERVER_URL=http://openam2.example.org:8080 + DEPLOYMENT_URI=/$OPENAM_PATH + BASE_DIR=$OPENAM_DATA_DIR + locale=en_US + PLATFORM_LOCALE=en_US + AM_ENC_KEY= + ADMIN_PWD=ampassword + AMLDAPUSERPASSWD=password + COOKIE_DOMAIN=example.org + ACCEPT_LICENSES=true + DATA_STORE=embedded + DIRECTORY_SSL=SIMPLE + DIRECTORY_SERVER=openam2.example.org + DIRECTORY_PORT=50389 + DIRECTORY_ADMIN_PORT=4444 + DIRECTORY_JMX_PORT=1689 + ROOT_SUFFIX=dc=openam,dc=example,dc=org + DS_DIRMGRDN=cn=Directory Manager + DS_DIRMGRPASSWD=password + existingserverid=http://openam1.example.org:8080 + LB_SITE_NAME=lb + LB_PRIMARY_URL=http://lb.example.org:80/openam + " > conf.file && java -jar openam-configurator-tool*.jar --file conf.file' + + docker exec test-openam2 bash -c \ + 'curl \ + --request POST \ + --header "Content-Type: application/json" \ + --header "X-OpenAM-Username: amadmin" \ + --header "X-OpenAM-Password: ampassword" \ + --data "{}" \ + http://openam.example.org:8080/openam/json/authenticate | grep tokenId' + + docker inspect --format="{{json .State.Health.Status}}" test-openam2 | grep -q \"healthy\" + + docker run --rm -it -d --memory="2g" -h openam2.example.org --name=test-openam2 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} + + echo "waiting for OpenAM-3 to be alive..." + timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test-openam3 | grep -q \"healthy\"; do sleep 10; done' + + docker exec -w '/usr/openam/ssoconfiguratortools' test-openam3 bash -c \ + 'echo "ACCEPT_LICENSES=true + SERVER_URL=http://openam2.example.org:8080 + DEPLOYMENT_URI=/$OPENAM_PATH + BASE_DIR=$OPENAM_DATA_DIR + locale=en_US + PLATFORM_LOCALE=en_US + AM_ENC_KEY= + ADMIN_PWD=ampassword + AMLDAPUSERPASSWD=password + COOKIE_DOMAIN=example.org + ACCEPT_LICENSES=true + DATA_STORE=embedded + DIRECTORY_SSL=SIMPLE + DIRECTORY_SERVER=openam2.example.org + DIRECTORY_PORT=50389 + DIRECTORY_ADMIN_PORT=4444 + DIRECTORY_JMX_PORT=1689 + ROOT_SUFFIX=dc=openam,dc=example,dc=org + DS_DIRMGRDN=cn=Directory Manager + DS_DIRMGRPASSWD=password + existingserverid=http://openam2.example.org:8080 + LB_SITE_NAME=lb + LB_PRIMARY_URL=http://lb.example.org:80/openam + " > conf.file && java -jar openam-configurator-tool*.jar --file conf.file' + + docker exec test-openam3 bash -c \ + 'curl \ + --request POST \ + --header "Content-Type: application/json" \ + --header "X-OpenAM-Username: amadmin" \ + --header "X-OpenAM-Password: ampassword" \ + --data "{}" \ + http://openam.example.org:8080/openam/json/authenticate | grep tokenId' + + docker inspect --format="{{json .State.Health.Status}}" test-openam3 | grep -q \"healthy\" \ No newline at end of file From 8c50f7b362064103b2b37dbe5fadbcbbf14199be Mon Sep 17 00:00:00 2001 From: maximthomas Date: Thu, 29 Jan 2026 17:32:54 +0300 Subject: [PATCH 02/11] Add OpenAM secondary instances to the Docker test in build.yml --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9d393dd189..85d504fae8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -156,6 +156,7 @@ jobs: echo "Add another two OpenAM servers to the cluster" + echo "Starting OpenAM-2 container..." docker run --rm -it -d --memory="2g" -h openam2.example.org --name=test-openam2 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} echo "waiting for OpenAM-2 to be alive..." @@ -198,7 +199,8 @@ jobs: docker inspect --format="{{json .State.Health.Status}}" test-openam2 | grep -q \"healthy\" - docker run --rm -it -d --memory="2g" -h openam2.example.org --name=test-openam2 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} + echo "Starting OpenAM-3 container..." + docker run --rm -it -d --memory="2g" -h openam2.example.org --name=test-openam3 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} echo "waiting for OpenAM-3 to be alive..." timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test-openam3 | grep -q \"healthy\"; do sleep 10; done' From 5e7c0b57aa0ca958a4e1148c795b8227f86888aa Mon Sep 17 00:00:00 2001 From: Maxim Thomas Date: Fri, 30 Jan 2026 12:19:17 +0300 Subject: [PATCH 03/11] Update OpenAM server URLs in build workflow --- .github/workflows/build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 85d504fae8..d02e0d4f24 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -195,7 +195,7 @@ jobs: --header "X-OpenAM-Username: amadmin" \ --header "X-OpenAM-Password: ampassword" \ --data "{}" \ - http://openam.example.org:8080/openam/json/authenticate | grep tokenId' + http://openam2.example.org:8080/openam/json/authenticate | grep tokenId' docker inspect --format="{{json .State.Health.Status}}" test-openam2 | grep -q \"healthy\" @@ -207,7 +207,7 @@ jobs: docker exec -w '/usr/openam/ssoconfiguratortools' test-openam3 bash -c \ 'echo "ACCEPT_LICENSES=true - SERVER_URL=http://openam2.example.org:8080 + SERVER_URL=http://openam3.example.org:8080 DEPLOYMENT_URI=/$OPENAM_PATH BASE_DIR=$OPENAM_DATA_DIR locale=en_US @@ -219,7 +219,7 @@ jobs: ACCEPT_LICENSES=true DATA_STORE=embedded DIRECTORY_SSL=SIMPLE - DIRECTORY_SERVER=openam2.example.org + DIRECTORY_SERVER=openam3.example.org DIRECTORY_PORT=50389 DIRECTORY_ADMIN_PORT=4444 DIRECTORY_JMX_PORT=1689 @@ -238,6 +238,6 @@ jobs: --header "X-OpenAM-Username: amadmin" \ --header "X-OpenAM-Password: ampassword" \ --data "{}" \ - http://openam.example.org:8080/openam/json/authenticate | grep tokenId' + http://openam3.example.org:8080/openam/json/authenticate | grep tokenId' - docker inspect --format="{{json .State.Health.Status}}" test-openam3 | grep -q \"healthy\" \ No newline at end of file + docker inspect --format="{{json .State.Health.Status}}" test-openam3 | grep -q \"healthy\" From 734b511888f6aade394f64289901787904cbcfbf Mon Sep 17 00:00:00 2001 From: Maxim Thomas Date: Fri, 30 Jan 2026 12:20:45 +0300 Subject: [PATCH 04/11] Update existing server ID in build configuration --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d02e0d4f24..bed9c8d861 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -183,7 +183,7 @@ jobs: ROOT_SUFFIX=dc=openam,dc=example,dc=org DS_DIRMGRDN=cn=Directory Manager DS_DIRMGRPASSWD=password - existingserverid=http://openam1.example.org:8080 + existingserverid=http://openam.example.org:8080 LB_SITE_NAME=lb LB_PRIMARY_URL=http://lb.example.org:80/openam " > conf.file && java -jar openam-configurator-tool*.jar --file conf.file' From 820277a0646c2c326f49f476d611f32791dea7cc Mon Sep 17 00:00:00 2001 From: maximthomas Date: Fri, 30 Jan 2026 12:58:57 +0300 Subject: [PATCH 05/11] Split OpenAM test with a dedicated OpenDJ container and OpenAM multi-server test --- .github/workflows/build.yml | 73 ++++++++++++++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bed9c8d861..0fec17778b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -102,7 +102,8 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - - name: Docker test + + - name: Docker test with a dedicated OpenDJ container shell: bash run: | docker network create test-openam @@ -154,6 +155,58 @@ jobs: docker inspect --format="{{json .State.Health.Status}}" test-openam | grep -q \"healthy\" + echo "Stopping containers and removing the network" + docker stop test-opendj test-openam + docker network rm test-openam + + - name: Docker multi-server test + shell: bash + run: | + + docker network create test-openam + + echo "Starting OpenAM-1 container" + docker run --rm -it -h openam1.example.org --name=test-openam1 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} + + echo "Waiting for OpenAM-1 to be alive..." + timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test-openam1 | grep -q \"healthy\"; do sleep 10; done' + + docker exec -w '/usr/openam/ssoconfiguratortools' test-openam1 bash -c \ + 'echo "ACCEPT_LICENSES=true + SERVER_URL=http://openam1.example.org:8080 + DEPLOYMENT_URI=/$OPENAM_PATH + BASE_DIR=$OPENAM_DATA_DIR + locale=en_US + PLATFORM_LOCALE=en_US + AM_ENC_KEY=O6QWwHPO4os+zEz3Nqn/2daAYWyiFE32 + ADMIN_PWD=ampassword + AMLDAPUSERPASSWD=password + COOKIE_DOMAIN=example.org + ACCEPT_LICENSES=true + DATA_STORE=embedded + DIRECTORY_SSL=SIMPLE + DIRECTORY_SERVER=openam1.example.org + DIRECTORY_PORT=50389 + DIRECTORY_ADMIN_PORT=4444 + DIRECTORY_JMX_PORT=1689 + ROOT_SUFFIX=dc=openam,dc=example,dc=org + DS_DIRMGRDN=cn=Directory Manager + DS_DIRMGRPASSWD=password + LB_SITE_NAME=lb + LB_PRIMARY_URL=http://lb.example.org:80/openam + " > conf.file && java -jar openam-configurator-tool*.jar --file conf.file' + + docker exec test-openam bash -c \ + 'curl \ + --request POST \ + --header "Content-Type: application/json" \ + --header "X-OpenAM-Username: amadmin" \ + --header "X-OpenAM-Password: ampassword" \ + --data "{}" \ + http://openam1.example.org:8080/openam/json/authenticate | grep tokenId' + + docker inspect --format="{{json .State.Health.Status}}" test-openam1 | grep -q \"healthy\" + echo "Add another two OpenAM servers to the cluster" echo "Starting OpenAM-2 container..." @@ -169,7 +222,7 @@ jobs: BASE_DIR=$OPENAM_DATA_DIR locale=en_US PLATFORM_LOCALE=en_US - AM_ENC_KEY= + AM_ENC_KEY=O6QWwHPO4os+zEz3Nqn/2daAYWyiFE32 ADMIN_PWD=ampassword AMLDAPUSERPASSWD=password COOKIE_DOMAIN=example.org @@ -183,7 +236,12 @@ jobs: ROOT_SUFFIX=dc=openam,dc=example,dc=org DS_DIRMGRDN=cn=Directory Manager DS_DIRMGRPASSWD=password - existingserverid=http://openam.example.org:8080 + DS_EMB_REPL_FLAG=embReplFlag + DS_EMB_REPL_REPLPORT1=8989 + DS_EMB_REPL_HOST2=openam1.example.com + DS_EMB_REPL_ADMINPORT2=4444 + DS_EMB_REPL_REPLPORT2=8989 + existingserverid=http://openam1.example.org:8080 LB_SITE_NAME=lb LB_PRIMARY_URL=http://lb.example.org:80/openam " > conf.file && java -jar openam-configurator-tool*.jar --file conf.file' @@ -205,14 +263,14 @@ jobs: echo "waiting for OpenAM-3 to be alive..." timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test-openam3 | grep -q \"healthy\"; do sleep 10; done' - docker exec -w '/usr/openam/ssoconfiguratortools' test-openam3 bash -c \ + docker exec -w '/usr/openam/ssoconfiguratortools' test-openam2 bash -c \ 'echo "ACCEPT_LICENSES=true SERVER_URL=http://openam3.example.org:8080 DEPLOYMENT_URI=/$OPENAM_PATH BASE_DIR=$OPENAM_DATA_DIR locale=en_US PLATFORM_LOCALE=en_US - AM_ENC_KEY= + AM_ENC_KEY=O6QWwHPO4os+zEz3Nqn/2daAYWyiFE32 ADMIN_PWD=ampassword AMLDAPUSERPASSWD=password COOKIE_DOMAIN=example.org @@ -226,6 +284,11 @@ jobs: ROOT_SUFFIX=dc=openam,dc=example,dc=org DS_DIRMGRDN=cn=Directory Manager DS_DIRMGRPASSWD=password + DS_EMB_REPL_FLAG=embReplFlag + DS_EMB_REPL_REPLPORT1=8989 + DS_EMB_REPL_HOST2=openam2.example.com + DS_EMB_REPL_ADMINPORT2=4444 + DS_EMB_REPL_REPLPORT2=8989 existingserverid=http://openam2.example.org:8080 LB_SITE_NAME=lb LB_PRIMARY_URL=http://lb.example.org:80/openam From 31cb4081d121342d73c332f47a84e18b884eed17 Mon Sep 17 00:00:00 2001 From: maximthomas Date: Fri, 30 Jan 2026 15:41:52 +0300 Subject: [PATCH 06/11] fix the input device is not a TTY error --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0fec17778b..8372002438 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -166,7 +166,7 @@ jobs: docker network create test-openam echo "Starting OpenAM-1 container" - docker run --rm -it -h openam1.example.org --name=test-openam1 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} + docker run --rm -it -d -h openam1.example.org --name=test-openam1 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} echo "Waiting for OpenAM-1 to be alive..." timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test-openam1 | grep -q \"healthy\"; do sleep 10; done' From 2ffa942dcedeb10fc2604a30b8e56aa3b77e9845 Mon Sep 17 00:00:00 2001 From: maximthomas Date: Fri, 30 Jan 2026 16:46:00 +0300 Subject: [PATCH 07/11] fix Error response from daemon: No such container: test-openam --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8372002438..436741d1ad 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -196,7 +196,7 @@ jobs: LB_PRIMARY_URL=http://lb.example.org:80/openam " > conf.file && java -jar openam-configurator-tool*.jar --file conf.file' - docker exec test-openam bash -c \ + docker exec test-openam1 bash -c \ 'curl \ --request POST \ --header "Content-Type: application/json" \ From 8dfac2d2d2417df2c32e815e5c4005d2bdd03c09 Mon Sep 17 00:00:00 2001 From: maximthomas Date: Fri, 30 Jan 2026 17:51:08 +0300 Subject: [PATCH 08/11] fix java.net.UnknownHostException: openam3.example.org --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 436741d1ad..0a4bbcf3e6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -210,7 +210,7 @@ jobs: echo "Add another two OpenAM servers to the cluster" echo "Starting OpenAM-2 container..." - docker run --rm -it -d --memory="2g" -h openam2.example.org --name=test-openam2 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} + docker run --rm -it -d -h openam2.example.org --name=test-openam2 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} echo "waiting for OpenAM-2 to be alive..." timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test-openam2 | grep -q \"healthy\"; do sleep 10; done' @@ -258,7 +258,7 @@ jobs: docker inspect --format="{{json .State.Health.Status}}" test-openam2 | grep -q \"healthy\" echo "Starting OpenAM-3 container..." - docker run --rm -it -d --memory="2g" -h openam2.example.org --name=test-openam3 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} + docker run --rm -it -d -h openam3.example.org --name=test-openam3 --network test-openam localhost:5000/${GITHUB_REPOSITORY,,}:${{ env.release_version }} echo "waiting for OpenAM-3 to be alive..." timeout 3m bash -c 'until docker inspect --format="{{json .State.Health.Status}}" test-openam3 | grep -q \"healthy\"; do sleep 10; done' From d85ce6ad3f27c56c8121a253d562e277c8d6f08d Mon Sep 17 00:00:00 2001 From: Maxim Thomas Date: Fri, 30 Jan 2026 20:46:55 +0300 Subject: [PATCH 09/11] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0a4bbcf3e6..4030fd575b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -285,7 +285,7 @@ jobs: DS_DIRMGRDN=cn=Directory Manager DS_DIRMGRPASSWD=password DS_EMB_REPL_FLAG=embReplFlag - DS_EMB_REPL_REPLPORT1=8989 + DS_EMB_REPL_REPLPORT1=9989 DS_EMB_REPL_HOST2=openam2.example.com DS_EMB_REPL_ADMINPORT2=4444 DS_EMB_REPL_REPLPORT2=8989 From d2d429aaeed1b49f24c655bb1762333401070bd6 Mon Sep 17 00:00:00 2001 From: Valery Kharseko Date: Sat, 31 Jan 2026 11:57:23 +0300 Subject: [PATCH 10/11] Swap replication ports in build configuration --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4030fd575b..7987fac8e2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -285,10 +285,10 @@ jobs: DS_DIRMGRDN=cn=Directory Manager DS_DIRMGRPASSWD=password DS_EMB_REPL_FLAG=embReplFlag - DS_EMB_REPL_REPLPORT1=9989 + DS_EMB_REPL_REPLPORT1=8989 DS_EMB_REPL_HOST2=openam2.example.com DS_EMB_REPL_ADMINPORT2=4444 - DS_EMB_REPL_REPLPORT2=8989 + DS_EMB_REPL_REPLPORT2=9989 existingserverid=http://openam2.example.org:8080 LB_SITE_NAME=lb LB_PRIMARY_URL=http://lb.example.org:80/openam From be5284601dc42343f11b773f68f50093fa744145 Mon Sep 17 00:00:00 2001 From: maximthomas Date: Tue, 3 Feb 2026 19:45:30 +0300 Subject: [PATCH 11/11] Bump OpenDJ to 5.0.3 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5b3c5fdf50..0259b9fc55 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ 11 checkstyle/suppressions.xml - 5.0.2 + 5.0.3-SNAPSHOT 1.0.0 1.0b3 7.0.0