diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b58c0c33..33b7db7e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,8 +4,6 @@ on: push: branches: [ 'sustaining/5.4.x','master' ] pull_request: - branches: [ 'sustaining/5.4.x','master' ] - jobs: build-maven: runs-on: ${{ matrix.os }} @@ -15,17 +13,17 @@ jobs: os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ] fail-fast: false steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 submodules: recursive - name: Java ${{ matrix.Java }} (${{ matrix.os }}) - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: java-version: ${{ matrix.java }} distribution: 'zulu' - name: Cache Maven packages - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.m2/repository key: ${{ runner.os }}-m2-repository-${{ hashFiles('**/pom.xml') }} @@ -35,7 +33,7 @@ jobs: MAVEN_OPTS: -Dhttps.protocols=TLSv1.2 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true -Dmaven.wagon.http.retryHandler.count=10 run: mvn --batch-mode --errors --update-snapshots package --file pom.xml - name: Upload artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: ${{ matrix.os }}-${{ matrix.java }} retention-days: 5 @@ -52,7 +50,7 @@ jobs: - 5000:5000 steps: - name: Download artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: ubuntu-latest-11 - name: Get latest release version @@ -62,7 +60,7 @@ jobs: echo "release_version=$git_version_last" >> $GITHUB_ENV - name: Docker meta id: meta - uses: docker/metadata-action@v5 + uses: docker/metadata-action@v6 with: images: | localhost:5000/${{ github.repository }} @@ -70,16 +68,16 @@ jobs: type=raw,value=latest type=raw,value=${{ env.release_version }} - name: Set up QEMU - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 with: driver-opts: network=host - name: Prepare Dockerfile shell: bash run: sed -i -E '/^#COPY openig-war\//s/^#//' ./openig-docker/target/Dockerfile - name: Build image - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v7 continue-on-error: true with: context: . diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 3cd5ef5a..d09f6967 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -15,13 +15,13 @@ jobs: env: GITHUB_CONTEXT: ${{ toJSON(github) }} run: echo "$GITHUB_CONTEXT" - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 submodules: recursive ref: ${{ github.event.workflow_run.head_branch }} - name: Set up Java for publishing to Maven Central Repository OSS - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: java-version: ${{ github.event.workflow_run.head_branch == 'sustaining/5.4.x' && '8' || '11'}} distribution: 'temurin' @@ -29,7 +29,7 @@ jobs: server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD - name: Cache Maven packages - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.m2/repository key: ${{ runner.os }}-m2-repository-${{ hashFiles('**/pom.xml') }} @@ -58,12 +58,12 @@ jobs: - name: Build Javadoc run: mvn javadoc:aggregate -pl '!openig-war' -pl '!openig-ui' - name: Upload artifacts OpenIG Server Only Component - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: OpenIG Server path: openig-war/target/*.war - name: Upload artifacts OpenIG Dockerfile - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: OpenIG Dockerfile path: openig-docker/target/Dockerfile* @@ -72,7 +72,7 @@ jobs: git config --global user.name "Open Identity Platform Community" git config --global user.email "open-identity-platform-opendj@googlegroups.com" cd .. - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 continue-on-error: true with: repository: ${{ github.repository }}.wiki @@ -92,7 +92,7 @@ jobs: git commit -a -m "upload docs after deploy ${{ github.sha }}" git push --quiet --force - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 continue-on-error: true with: repository: OpenIdentityPlatform/doc.openidentityplatform.org diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f90ff99f..6037d0e3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,12 +19,12 @@ jobs: env: GITHUB_CONTEXT: ${{ toJSON(github) }} run: echo "$GITHUB_CONTEXT" - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 submodules: recursive - name: Set up Java for publishing to Maven Central Repository OSS - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: java-version: ${{ github.event.workflow_run.head_branch == 'sustaining/5.4.x' && '8' || '11'}} distribution: 'temurin' @@ -32,7 +32,7 @@ jobs: server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD - name: Cache Maven packages - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.m2/repository key: ${{ runner.os }}-m2-repository-${{ hashFiles('**/pom.xml') }} @@ -71,7 +71,7 @@ jobs: target/checkout/openig-war/target/*.war target/checkout/openig-docker/target/Dockerfile* - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 continue-on-error: true with: repository: ${{ github.repository }}.wiki @@ -93,7 +93,7 @@ jobs: git tag -f ${{ github.event.inputs.releaseVersion }} git push --quiet --force git push --quiet --force origin ${{ github.event.inputs.releaseVersion }} - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 continue-on-error: true with: repository: OpenIdentityPlatform/doc.openidentityplatform.org @@ -113,14 +113,14 @@ jobs: needs: - release-maven steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ github.event.inputs.releaseVersion }} fetch-depth: 1 submodules: recursive - name: Docker meta id: meta - uses: docker/metadata-action@v5 + uses: docker/metadata-action@v6 with: images: | ${{ github.repository }} @@ -129,22 +129,22 @@ jobs: type=raw,value=latest type=raw,value=${{ github.event.inputs.releaseVersion }} - name: Set up QEMU - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Login to DockerHub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Login to GHCR - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push image - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v7 continue-on-error: true with: context: ./openig-docker diff --git a/openig-core/src/test/java/org/forgerock/openig/handler/router/RouterHandlerTest.java b/openig-core/src/test/java/org/forgerock/openig/handler/router/RouterHandlerTest.java index b60f8727..716bb9fc 100644 --- a/openig-core/src/test/java/org/forgerock/openig/handler/router/RouterHandlerTest.java +++ b/openig-core/src/test/java/org/forgerock/openig/handler/router/RouterHandlerTest.java @@ -321,14 +321,14 @@ public void onChanges_deploysRoute_whenOpenApiSpecFileIsAdded() throws Exception when(mockSpecLoader.isOpenApiFile(specFile)).thenReturn(true); when(mockSpecLoader.tryLoad(specFile)).thenReturn(Optional.of(fakeSpec)); - when(mockOpenApiRouteBuilder.buildRouteJson(eq(fakeSpec), eq(specFile), anyBoolean())).thenReturn(routeJson); + when(mockOpenApiRouteBuilder.buildRouteJson(eq(fakeSpec), eq(specFile), anyBoolean(), anyBoolean())).thenReturn(routeJson); when(mockRouteBuilder.build(any(), any(), any())).thenReturn(mockRoute); RouterHandler handler = newHandler(); handler.onChanges(addedChangeSet(specFile)); verify(mockSpecLoader).tryLoad(specFile); - verify(mockOpenApiRouteBuilder).buildRouteJson(fakeSpec, specFile, false); + verify(mockOpenApiRouteBuilder).buildRouteJson(fakeSpec, specFile, false, false); verify(mockRouteBuilder).build(any(), any(), any()); } @@ -355,7 +355,7 @@ public void stop_destroysAllRoutes() throws Exception { when(mockSpecLoader.isOpenApiFile(specFile)).thenReturn(true); when(mockSpecLoader.tryLoad(specFile)).thenReturn(Optional.of(fakeSpec)); - when(mockOpenApiRouteBuilder.buildRouteJson(eq(fakeSpec), eq(specFile), anyBoolean())).thenReturn(routeJson); + when(mockOpenApiRouteBuilder.buildRouteJson(eq(fakeSpec), eq(specFile), anyBoolean(), anyBoolean())).thenReturn(routeJson); when(mockRouteBuilder.build(any(), any(), any())).thenReturn(mockRoute); RouterHandler handler = newHandler(); @@ -380,7 +380,7 @@ public void onChanges_ignoresOpenApiSpecFile_whenEnabledIsFalse() throws Excepti // Neither the loader nor the route builder should have been consulted verify(mockSpecLoader, never()).tryLoad(any()); - verify(mockOpenApiRouteBuilder, never()).buildRouteJson(any(), any(), any(Boolean.class)); + verify(mockOpenApiRouteBuilder, never()).buildRouteJson(any(), any(), any(Boolean.class), any(Boolean.class)); verify(mockRouteBuilder, never()).build(any(), any(), any()); } @@ -396,7 +396,7 @@ public void buildRouteJson_isCalledWithFalse_whenFailOnResponseViolationIsFalse( when(mockSpecLoader.isOpenApiFile(specFile)).thenReturn(true); when(mockSpecLoader.tryLoad(specFile)).thenReturn(Optional.of(fakeSpec)); - when(mockOpenApiRouteBuilder.buildRouteJson(fakeSpec, specFile, false)) + when(mockOpenApiRouteBuilder.buildRouteJson(fakeSpec, specFile, false, false)) .thenReturn(routeJson); when(mockRouteBuilder.build(any(), any(), any())).thenReturn(mockRoute); @@ -404,7 +404,7 @@ public void buildRouteJson_isCalledWithFalse_whenFailOnResponseViolationIsFalse( strictHandler.onChanges(addedChangeSet(specFile)); // Must be called with failOnResponseViolation=false - verify(mockOpenApiRouteBuilder).buildRouteJson(fakeSpec, specFile, false); + verify(mockOpenApiRouteBuilder).buildRouteJson(fakeSpec, specFile, false, false); } @Test @@ -419,14 +419,14 @@ public void buildRouteJson_isCalledWithTrue_whenFailOnResponseViolationIsTrue() when(mockSpecLoader.isOpenApiFile(specFile)).thenReturn(true); when(mockSpecLoader.tryLoad(specFile)).thenReturn(Optional.of(fakeSpec)); - when(mockOpenApiRouteBuilder.buildRouteJson(fakeSpec, specFile, true)) + when(mockOpenApiRouteBuilder.buildRouteJson(fakeSpec, specFile, true, false)) .thenReturn(routeJson); when(mockRouteBuilder.build(any(), any(), any())).thenReturn(mockRoute); strictHandler.onChanges(addedChangeSet(specFile)); // Must be called with failOnResponseViolation=true - verify(mockOpenApiRouteBuilder).buildRouteJson(fakeSpec, specFile, true); + verify(mockOpenApiRouteBuilder).buildRouteJson(fakeSpec, specFile, true, false); } @Test