You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tw...@apache.org on 2026/03/14 20:18:40 UTC

(mina-sshd) branch dev_3.0 updated (df5d9cd3c -> fff5fe20c)

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

twolf pushed a change to branch dev_3.0
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git


    from df5d9cd3c Merge branch 'master' into 3.0.0
     add 32038f1dc GH-861: prevent zero-byte write in SFTP
     add 5a9194bb9 Replace "synchronized" blocks in AbstractSession with ReentrantLock
     add 6bcd715b0 GH-721: Create session timeout thread on demand
     add c49c0687a GH-721: fix SfpFileSystemProvider.getPath(URI)
     add c1f31ee7c Avoid race condition when closing a SshClient
     add c69cd0cee GH-855: Thread-safe DefaultSftpClient
     add 4eccf4926 GH-855: single SftpClient in SftpFileSystem
     add c66429a4b GH-865: replace %h in HostName SSH config
     new 825cbda6b Merge branch 'master' into 3.0.0
     add 5c0a7b842 [SSHD-1349] On Java 26-ea, PMD 7.17.0 throws StackOverflowError, update to PMD 7.20.0
     add 96a84b563 Fix namespace declarations in POMs
     add 8adfae90e [releng] Release preparation
     add 2e58cb522 [releng] Require Maven 3.9.12
     add 164385cf6 [releng] Bump dependencies
     add 7b397c7e5 [releng] Build with Java 25 in CI
     add 7a7f2bb9b CoreTestSupportUtils: fix test framework
     add d839c9520 Bump JUnit 5 to latest patch version
     add b6848c041 Mock git configuration in git-related tests
     add 5ee81f47e Fix duplicate character echoing in ProcessShell
     add 5f6bef614 Prepare documentation for a 2.17.0 release
     add 9308c1e10 [maven-release-plugin] prepare release sshd-2.17.0
     add 42d2c7de7 [maven-release-plugin] prepare for next development iteration
     add e661b4a52 GH-875: Update Apache Parent POM
     add 03df24689 [maven-release-plugin] prepare release sshd-2.17.1
     add 6b4a81d6f [maven-release-plugin] prepare for next development iteration
     new a56c8f5cc Merge branch 'master' into 3.0.0
     add 1783572cf GH-879: close channel gracefully in TCP/IP forwarding
     add 160f911b6 Ignore flaky ServerTest.serverIdleTimoutWithForce()
     add 07cfbba3f [releng] Fix maven wrapper
     add 22c94b3dc Bump dependencies
     add a3d225109 Bump netty 4.2.0.Final to 4.2.10.Final
     new fff5fe20c Merge branch 'master' into 3.0.0

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/build.yml                        |  14 +-
 .github/workflows/master-build.yml                 |   9 +-
 .github/workflows/next-build.yml                   |  13 +-
 .mvn/wrapper/maven-wrapper.properties              |   2 +-
 CHANGES.md                                         |   2 +-
 assembly/pom.xml                                   |   2 +-
 docs/changes/2.17.0.md                             |  34 ++
 docs/changes/2.17.1.md                             |  19 ++
 pom.xml                                            |  22 +-
 sshd-benchmarks/pom.xml                            |   2 +-
 sshd-cli/pom.xml                                   |   2 +-
 sshd-common/pom.xml                                |   2 +-
 .../sshd/client/config/hosts/HostConfigEntry.java  |  34 ++
 .../sshd/server/shell/TtyFilterOutputStream.java   |  19 +-
 .../client/config/hosts/HostConfigEntryTest.java   |   8 +
 .../server/shell/TtyFilterOutputStreamTest.java    |   2 +-
 sshd-contrib/pom.xml                               |   4 +-
 sshd-core/pom.xml                                  |   2 +-
 .../sshd/common/forward/DefaultForwarder.java      |   5 +-
 .../common/helpers/AbstractFactoryManager.java     |  70 +++--
 .../org/apache/sshd/server/shell/ProcessShell.java |   2 +-
 .../java/org/apache/sshd/server/ServerTest.java    |  10 +-
 .../apache/sshd/server/shell/ProcessShellTest.java | 116 +++++++
 .../sshd/util/test/CoreTestSupportUtils.java       |   4 +-
 sshd-git/pom.xml                                   |   2 +-
 .../java/org/apache/sshd/git/GitTestSupport.java   | 113 +++++++
 .../apache/sshd/git/pack/GitPackCommandTest.java   |   8 +-
 .../org/apache/sshd/git/pgm/GitPgmCommandTest.java |   8 +-
 sshd-ldap/pom.xml                                  |   4 +-
 sshd-mina/pom.xml                                  |   2 +-
 sshd-netty/pom.xml                                 |   4 +-
 sshd-openpgp/pom.xml                               |   2 +-
 sshd-osgi/pom.xml                                  |   2 +-
 sshd-putty/pom.xml                                 |   2 +-
 sshd-scp/pom.xml                                   |   2 +-
 sshd-sftp/pom.xml                                  |   2 +-
 .../org/apache/sshd/sftp/SftpModuleProperties.java |  12 +-
 .../apache/sshd/sftp/client/fs/SftpFileSystem.java | 341 ++++++++-------------
 .../sftp/client/fs/SftpFileSystemProvider.java     |  43 ++-
 .../sshd/sftp/client/impl/DefaultSftpClient.java   |  30 +-
 .../sftp/client/impl/SftpOutputStreamAsync.java    |  48 ++-
 .../apache/sshd/sftp/client/SftpClientTest.java    | 101 ++++++
 .../apache/sshd/sftp/server/SftpServerTest.java    |   2 +-
 sshd-spring-sftp/pom.xml                           |   2 +-
 44 files changed, 754 insertions(+), 375 deletions(-)
 create mode 100644 docs/changes/2.17.0.md
 create mode 100644 docs/changes/2.17.1.md
 create mode 100644 sshd-core/src/test/java/org/apache/sshd/server/shell/ProcessShellTest.java
 create mode 100644 sshd-git/src/test/java/org/apache/sshd/git/GitTestSupport.java
 create mode 100644 sshd-sftp/src/test/java/org/apache/sshd/sftp/client/SftpClientTest.java


(mina-sshd) 02/03: Merge branch 'master' into 3.0.0

Posted by tw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

twolf pushed a commit to branch dev_3.0
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git

commit a56c8f5ccde91cd91258fb02744a11c93a807baa
Merge: 825cbda6b 6b4a81d6f
Author: Thomas Wolf <tw...@apache.org>
AuthorDate: Sun Feb 1 14:32:50 2026 +0100

    Merge branch 'master' into 3.0.0

 .github/workflows/build.yml                        |  14 +--
 .github/workflows/master-build.yml                 |   9 +-
 .github/workflows/next-build.yml                   |  13 +--
 .mvn/wrapper/maven-wrapper.properties              |   2 +-
 assembly/pom.xml                                   |   2 +-
 docs/changes/2.17.0.md                             |  34 ++++++
 docs/changes/2.17.1.md                             |  19 ++++
 pom.xml                                            |  16 +--
 sshd-benchmarks/pom.xml                            |   2 +-
 sshd-cli/pom.xml                                   |   2 +-
 sshd-common/pom.xml                                |   2 +-
 .../sshd/server/shell/TtyFilterOutputStream.java   |  19 +---
 .../server/shell/TtyFilterOutputStreamTest.java    |   2 +-
 sshd-contrib/pom.xml                               |   2 +-
 sshd-core/pom.xml                                  |   2 +-
 .../org/apache/sshd/server/shell/ProcessShell.java |   2 +-
 .../apache/sshd/server/shell/ProcessShellTest.java | 116 +++++++++++++++++++++
 .../sshd/util/test/CoreTestSupportUtils.java       |   4 +-
 sshd-git/pom.xml                                   |   2 +-
 .../java/org/apache/sshd/git/GitTestSupport.java   | 113 ++++++++++++++++++++
 .../apache/sshd/git/pack/GitPackCommandTest.java   |   8 +-
 .../org/apache/sshd/git/pgm/GitPgmCommandTest.java |   8 +-
 sshd-ldap/pom.xml                                  |   4 +-
 sshd-mina/pom.xml                                  |   2 +-
 sshd-netty/pom.xml                                 |   2 +-
 sshd-openpgp/pom.xml                               |   2 +-
 sshd-osgi/pom.xml                                  |   2 +-
 sshd-putty/pom.xml                                 |   2 +-
 sshd-scp/pom.xml                                   |   2 +-
 sshd-sftp/pom.xml                                  |   2 +-
 sshd-spring-sftp/pom.xml                           |   2 +-
 31 files changed, 337 insertions(+), 76 deletions(-)

diff --cc .github/workflows/next-build.yml
index 7b4611229,000000000..5112c9263
mode 100644,000000..100644
--- a/.github/workflows/next-build.yml
+++ b/.github/workflows/next-build.yml
@@@ -1,120 -1,0 +1,115 @@@
 +#
 +# 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 agreed to in writing, software
 +# distributed under the License is distributed on an "AS IS" BASIS,
 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +# See the License for the specific language governing permissions and
 +# limitations under the License.
 +#
 +
 +name: next-build
 +
 +on:
 +  push:
 +    branches:
 +      - 'dev_3.0'
 +    paths-ignore:
 +      - 'docs/**'
 +      - '*.md'
 +      - '.github/ISSUE_TEMPLATE/**'
 +      - '*.txt'
 +
 +jobs:
 +  build:
 +    uses: ./.github/workflows/build.yml
 +
 +  deploy-snapshot:
 +    # Skip any commit from creating releases. The first snapshot after a new release
 +    # will thus be published on the first real change on the new snapshot version, but
 +    # there will be no snapshot release for just bumping the version.
 +    if: "!startsWith(github.event.head_commit.message ,'[maven-release-plugin]')"
 +    needs: build
 +    # Serialize these jobs from different workflow runs. We do not want concurrent
 +    # deployments. We don't cancel already running jobs because we do not want their
 +    # workflows to report a failure. Github does not guarantee order between jobs
 +    # that queue within 5 minutes, see https://docs.github.com/en/actions/using-jobs/using-concurrency .
 +    # We do check below that the job is operating on the latest origin/master, and
 +    # we skip deployment if not.
 +    concurrency: mina-sshd-next-snapshot-deploy
 +    runs-on: ubuntu-latest
 +    steps:
 +      - uses: actions/checkout@v4
 +      
 +      - name: Set up JDK
 +        uses: actions/setup-java@v4
 +        with:
 +          distribution: temurin
 +          java-version: '25'
 +          # Create a ~/.m2/settings.xml referencing these environment variable names
 +          server-id: 'apache.snapshots.https'
 +          server-username: NEXUS_USERNAME
 +          server-password: NEXUS_PASSWORD
 +
 +      - uses: actions/cache@v4
 +        with:
 +          path: ~/.m2/repository
 +          key: ubuntu-latest-maven-${{ hashFiles('**/pom.xml') }}
 +          restore-keys: |
 +            ubuntu-latest-maven-
 +
-       - name: Set up Maven
-         uses: stCarolas/setup-maven@v5
-         with:
-           maven-version: '3.9.11'
- 
 +      - name: Check version (SNAPSHOT)
 +        # Only deploy SNAPSHOT versions. We do not use "exit 1" because we still want the workflow
 +        # to report success, we just want this job to do nothing.
 +        #
 +        # All subsequent steps are conditional.
 +        run: |
-           export PROJECT_VERSION=$(mvn -B -q -DforceStdout -Dexpression=project.version help:evaluate)
++          export PROJECT_VERSION=$(./mvnw -B -q -DforceStdout -Dexpression=project.version help:evaluate)
 +          echo "Project version: $PROJECT_VERSION"
 +          [[ "$PROJECT_VERSION" =~ ^3\.[0-9]+\.[0-9]+-SNAPSHOT$ ]] || {
 +            echo "**** Skipping deployment because not a snapshot version: $PROJECT_VERSION" 1>&2
 +            echo "SKIP_DEPLOYMENT=true" >> "$GITHUB_ENV"
 +          }
 +
 +      - name: Check HEAD is current
 +        # Must be quoted, ! is special in yaml
 +        if: "! env.SKIP_DEPLOYMENT"
 +        # Do not deploy if refs/heads/dev_3.0 has advanced in the meantime
 +        run : |
 +          export CURR_HEAD=$(git rev-parse -q origin/dev_3.0)
 +          echo "Local: github.sha=${{ github.sha }} refs/heads/dev_3.0=$(git rev-parse -q refs/heads/dev_3.0)"
 +          echo "Origin: origin/dev_3.0=$CURR_HEAD"
 +          [[ "${{ github.sha }}" == "$CURR_HEAD" ]] || {
 +            echo "**** Skipping deployment because dev_3.0 branch advanced: ${{ github.sha }} != origin/dev_3.0 $CURR_HEAD" 1>&2
 +            echo "SKIP_DEPLOYMENT=true" >> "$GITHUB_ENV"
 +          }
 +
 +      - name: Build and deploy with maven
 +        # Must be quoted, ! is special in yaml
 +        if: "! env.SKIP_DEPLOYMENT"
 +        # NEXUS_USERNAME and NEXUS_PASSWORD are used in ~/.m2/settings.xml created by
 +        # the setup-java action. The two secrets are organization-wide secrets that
 +        # were enabled by Apache Infra for our repository.
 +        env:
 +          NEXUS_USERNAME: ${{ secrets.NEXUS_USER }}
 +          NEXUS_PASSWORD: ${{ secrets.NEXUS_PW }}
 +        # Our root POM overwrites the release repository with an invalid value to prevent
 +        # accidental release deployments as an additional safety measure. The snapshot
 +        # repo from the Apache parent POM is not overridden.
-         run: mvn -B --errors --activate-profiles ci --no-transfer-progress deploy -DskipTests -DdeployAtEnd
++        run: ./mvnw -B --errors --activate-profiles ci --no-transfer-progress deploy -DskipTests -DdeployAtEnd
 +
 +      - name: Build and deploy web site
 +        if: "! env.SKIP_DEPLOYMENT"
 +        # git config needs to be --global because scm-publish will clone the repo again.
 +        run: |
 +          git config --global user.name "github-actions[bot]"
 +          git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
-           mvn -B --no-transfer-progress -DskipTests -Pjapicmp clean install
-           mvn -B --no-transfer-progress scm-publish:publish-scm -Dgithub.actor=${{ github.actor }} -Dgithub.token=${{ secrets.GITHUB_TOKEN }}
++          ./mvnw -B --no-transfer-progress -DskipTests -Pjapicmp clean install
++          ./mvnw -B --no-transfer-progress scm-publish:publish-scm -Dgithub.actor=${{ github.actor }} -Dgithub.token=${{ secrets.GITHUB_TOKEN }}
diff --cc pom.xml
index 9a48d2c19,77bbf60db..d99bfc539
--- a/pom.xml
+++ b/pom.xml
@@@ -71,30 -71,33 +71,30 @@@
      </scm>
  
      <properties>
-         <japicmp-sshd-last-release>2.16.0</japicmp-sshd-last-release>
 -        <minimalJavaBuildVersion>17</minimalJavaBuildVersion>
++        <japicmp-sshd-last-release>2.17.1</japicmp-sshd-last-release>
 +        <minimalJavaBuildVersion>24</minimalJavaBuildVersion>
          <surefireJdk>[${minimalJavaBuildVersion},)</surefireJdk>
-         <minimalMavenBuildVersion>3.9.11</minimalMavenBuildVersion>
+         <minimalMavenBuildVersion>3.9.12</minimalMavenBuildVersion>
  
          <format.impsort.action>sort</format.impsort.action>
          <format.formatter.action>format</format.formatter.action>
  
  
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 -        <project.build.outputTimestamp>2026-01-22T19:40:42Z</project.build.outputTimestamp>
 +        <project.build.outputTimestamp>2025-10-22T16:19:01Z</project.build.outputTimestamp>
  
          <java.sdk.version>8</java.sdk.version>
 -        <javac.source>${java.sdk.version}</javac.source>
 -        <project.build.java.source>${javac.source}</project.build.java.source>
 -        <maven.compiler.source>${javac.source}</maven.compiler.source>
 +        <javac.release>${java.sdk.version}</javac.release>
 +        <maven.compiler.release>${java.sdk.version}</maven.compiler.release>
          <ant.version>1.10.15</ant.version>
 -        <ant.build.javac.source>${javac.source}</ant.build.javac.source>
          <build-helper-maven-plugin.version>3.6.1</build-helper-maven-plugin.version>
  
 -        <javac.target>${javac.source}</javac.target>
 -        <required.java.version>[${javac.target},)</required.java.version>
 -        <project.build.java.target>${javac.target}</project.build.java.target>
 -        <maven.compiler.target>${javac.target}</maven.compiler.target>
 -        <ant.build.javac.target>${javac.target}</ant.build.javac.target>
 +        <required.java.version>[${java.sdk.version},)</required.java.version>
  
          <groovy.version>4.0.17</groovy.version>
-         <bouncycastle.version>1.82</bouncycastle.version>
+         <bouncycastle.version>1.83</bouncycastle.version>
 +        <!-- BC FIPS has version numbers 2.x.y. -->
 +        <bouncycastle.upper.bound>3</bouncycastle.upper.bound>
              <!-- NOTE: upgrading slf4j beyond this version causes
  
              Execution verify-style of goal org.apache.maven.plugins:maven-checkstyle-plugin:3.1.2:check failed.: NullPointerException
@@@ -114,8 -117,8 +114,8 @@@
          <maven.archiver.version>3.6.5</maven.archiver.version>
          <plexus.archiver.version>4.10.3</plexus.archiver.version>
          <!-- See https://pmd.github.io/ for available latest version -->
-         <pmd.version>7.17.0</pmd.version>
+         <pmd.version>7.20.0</pmd.version>
 -
 +        <japicmp.version>0.23.1</japicmp.version>
          <sshd.tests.timeout.factor>1.0</sshd.tests.timeout.factor>
          <sshd.tests.rerun.count>2</sshd.tests.rerun.count>
  
diff --cc sshd-git/src/test/java/org/apache/sshd/git/pack/GitPackCommandTest.java
index 2ddcbf6a2,3e6dbe63d..fae7fb6e9
--- a/sshd-git/src/test/java/org/apache/sshd/git/pack/GitPackCommandTest.java
+++ b/sshd-git/src/test/java/org/apache/sshd/git/pack/GitPackCommandTest.java
@@@ -52,12 -53,10 +53,12 @@@ import org.junit.jupiter.api.Test
  import org.junit.jupiter.api.TestMethodOrder;
  
  /**
 + * Tests for using git over ssh.
   */
  @TestMethodOrder(MethodName.class)
- class GitPackCommandTest extends BaseTestSupport {
 -public class GitPackCommandTest extends GitTestSupport {
 -    public GitPackCommandTest() {
++class GitPackCommandTest extends GitTestSupport {
 +
 +    GitPackCommandTest() {
          super();
      }
  
diff --cc sshd-git/src/test/java/org/apache/sshd/git/pgm/GitPgmCommandTest.java
index b74b08bba,d3b47e108..eeae8be64
--- a/sshd-git/src/test/java/org/apache/sshd/git/pgm/GitPgmCommandTest.java
+++ b/sshd-git/src/test/java/org/apache/sshd/git/pgm/GitPgmCommandTest.java
@@@ -41,12 -42,10 +42,12 @@@ import org.junit.jupiter.api.Test
  import org.junit.jupiter.api.TestMethodOrder;
  
  /**
 + * Tests for running git commands.
   */
  @TestMethodOrder(MethodName.class)
- class GitPgmCommandTest extends BaseTestSupport {
 -public class GitPgmCommandTest extends GitTestSupport {
 -    public GitPgmCommandTest() {
++class GitPgmCommandTest extends GitTestSupport {
 +
 +    GitPgmCommandTest() {
          super();
      }
  
diff --cc sshd-ldap/pom.xml
index e97a44f07,3c46b36a8..eada261ee
--- a/sshd-ldap/pom.xml
+++ b/sshd-ldap/pom.xml
@@@ -143,16 -143,9 +143,16 @@@
                      <argLine>${surefire.argLine}</argLine>
                  </configuration>
              </plugin>
 +            <plugin>
 +                <groupId>org.apache.maven.plugins</groupId>
 +                <artifactId>maven-javadoc-plugin</artifactId>
 +                <configuration>
 +                    <additionalparam>-Xdoclint:none</additionalparam>
 +                </configuration>
 +            </plugin>
          </plugins>
      </build>
-     
+ 
      <profiles>
          <profile>
              <id>surefireJdk8</id>


(mina-sshd) 01/03: Merge branch 'master' into 3.0.0

Posted by tw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

twolf pushed a commit to branch dev_3.0
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git

commit 825cbda6bf795fc40df6aee67d28ebeb037124c9
Merge: df5d9cd3c c66429a4b
Author: Thomas Wolf <tw...@apache.org>
AuthorDate: Wed Jan 7 22:08:45 2026 +0100

    Merge branch 'master' into 3.0.0

 .../sshd/client/config/hosts/HostConfigEntry.java  |  34 ++
 .../client/config/hosts/HostConfigEntryTest.java   |   8 +
 .../common/helpers/AbstractFactoryManager.java     |  70 +++--
 .../org/apache/sshd/sftp/SftpModuleProperties.java |  12 +-
 .../apache/sshd/sftp/client/fs/SftpFileSystem.java | 341 ++++++++-------------
 .../sftp/client/fs/SftpFileSystemProvider.java     |  43 ++-
 .../sshd/sftp/client/impl/DefaultSftpClient.java   |  30 +-
 .../sftp/client/impl/SftpOutputStreamAsync.java    |  48 ++-
 .../apache/sshd/sftp/client/SftpClientTest.java    | 101 ++++++
 .../apache/sshd/sftp/server/SftpServerTest.java    |   2 +-
 10 files changed, 406 insertions(+), 283 deletions(-)



(mina-sshd) 03/03: Merge branch 'master' into 3.0.0

Posted by tw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

twolf pushed a commit to branch dev_3.0
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git

commit fff5fe20ce08a475e50e2f2346b01072398adeec
Merge: a56c8f5cc a3d225109
Author: Thomas Wolf <tw...@apache.org>
AuthorDate: Sat Mar 14 18:37:17 2026 +0100

    Merge branch 'master' into 3.0.0

 .mvn/wrapper/maven-wrapper.properties                          |  2 +-
 CHANGES.md                                                     |  2 +-
 pom.xml                                                        | 10 +++++-----
 sshd-contrib/pom.xml                                           |  2 +-
 .../java/org/apache/sshd/common/forward/DefaultForwarder.java  |  5 ++---
 sshd-core/src/test/java/org/apache/sshd/server/ServerTest.java | 10 +++-------
 sshd-netty/pom.xml                                             |  2 +-
 7 files changed, 14 insertions(+), 19 deletions(-)

diff --cc CHANGES.md
index 3af9160ea,d4f4dafbf..673920bea
--- a/CHANGES.md
+++ b/CHANGES.md
@@@ -1,38 -1,41 +1,38 @@@
  # Previous Versions
  
 -* [Version 2.1.0 to 2.2.0](./docs/changes/2.2.0.md)
 -* [Version 2.2.0 to 2.3.0](./docs/changes/2.3.0.md)
 -* [Version 2.3.0 to 2.4.0](./docs/changes/2.4.0.md)
 -* [Version 2.4.0 to 2.5.0](./docs/changes/2.5.0.md)
 -* [Version 2.5.0 to 2.5.1](./docs/changes/2.5.1.md)
 -* [Version 2.5.1 to 2.6.0](./docs/changes/2.6.0.md)
 -* [Version 2.6.0 to 2.7.0](./docs/changes/2.7.0.md)
 -* [Version 2.7.0 to 2.8.0](./docs/changes/2.8.0.md)
 -* [Version 2.8.0 to 2.9.0](./docs/changes/2.9.0.md)
 -* [Version 2.9.0 to 2.9.1](./docs/changes/2.9.1.md)
 -* [Version 2.9.1 to 2.9.2](./docs/changes/2.9.2.md)
 -* [Version 2.9.2 to 2.10.0](./docs/changes/2.10.0.md)
 -* [Version 2.10.0 to 2.11.0](./docs/changes/2.11.0.md)
 -* [Version 2.11.0 to 2.12.0](./docs/changes/2.12.0.md)
 -* [Version 2.12.0 to 2.12.1](./docs/changes/2.12.1.md)
 -* [Version 2.12.1 to 2.13.0](./docs/changes/2.13.0.md)
 -* [Version 2.13.0 to 2.13.1](./docs/changes/2.13.1.md)
 -* [Version 2.13.1 to 2.13.2](./docs/changes/2.13.2.md)
 -* [Version 2.13.2 to 2.14.0](./docs/changes/2.14.0.md)
 -* [Version 2.14.0 to 2.15.0](./docs/changes/2.15.0.md)
 -* [Version 2.15.0 to 2.16.0](./docs/changes/2.16.0.md)
 -* [Version 2.16.0 to 2.17.0](./docs/changes/2.17.0.md)
 -
 -# Latest Version
 -
 -* **[Version 2.17.0 to 2.17.1](./docs/changes/2.17.1.md)**
 -
 -# Planned for Next Version
 +* [Change Notes for Version 2](./docs/changes/version2.md)
  
 -## Bug Fixes
 +# Version 3
  
 -* [GH-879](https://github.com/apache/mina-sshd/issues/879) Close SSH channel gracefully on exception in port forwarding
 +**This is work in progress.**  Version 3 contains many API breaks from version 2. API comparison reports
 +generated by [japicmp](https://siom79.github.io/japicmp) are published at
 +[https://apache.github.io/mina-sshd](https://apache.github.io/mina-sshd).
  
 -## New Features
 +Version 3 includes all the features and bug fixes of version 2, including the
 +[latest ones](https://github.com/apache/mina-sshd/blob/master/CHANGES.md#planned-for-next-version).
 +
- * For building Apache MINA SSHD 3.0, **Java >= 24** and Apache **Maven >= 3.9.11** are required. Generated artifacts
++* For building Apache MINA SSHD 3.0, **Java >= 24** and Apache **Maven >= 3.9.12** are required. Generated artifacts
 +  still use Java 8 as minimum runtime requirement.
 +
 +## Milestone 1: Pre-Release 3.0.0-M1
 +
 +Complete refactoring of the SSH transport protocol. New feature: support for client-side proxies.
 +
 +* [Change notes for 3.0.0-M1](./docs/changes/3.0.0-M1.md)
 +
 +## Milestone 2: Pre-Release 3.0.0-M2
 +
 +Refactoring of cryptography. New feature: multi-release JARs for `sshd-common` and `sshd-osgi` and using on
 +newer Java versions the already built-in cryptographic algorithms for ChaCha20, ed25519, and ML-KEM.
  
 -## Potential Compatibility Issues
 +* [Change notes for 3.0.0-M2](./docs/changes/3.0.0-M2.md)
 +
 +# Planned for the Next Milestone Release
 +
 +
 +## Bug Fixes
 +
 +* [GH-852](https://github.com/apache/mina-sshd/issues/852) Fix wrong import
  
  ## Major Code Re-factoring
  
diff --cc pom.xml
index d99bfc539,e50762840..26bb6bb71
--- a/pom.xml
+++ b/pom.xml
@@@ -109,13 -112,13 +109,13 @@@
              <!-- mockito 5.0 requires Java 11. -->
          <mockito.version>4.11.0</mockito.version>
          <testcontainers.version>1.21.3</testcontainers.version>
-         <grpc.version>1.76.0</grpc.version> <!-- Used only in tests -->
+         <grpc.version>1.78.0</grpc.version> <!-- Used only in tests -->
  
          <maven.archiver.version>3.6.5</maven.archiver.version>
-         <plexus.archiver.version>4.10.3</plexus.archiver.version>
+         <plexus.archiver.version>4.11.0</plexus.archiver.version>
          <!-- See https://pmd.github.io/ for available latest version -->
-         <pmd.version>7.20.0</pmd.version>
+         <pmd.version>7.22.0</pmd.version>
 -
 +        <japicmp.version>0.23.1</japicmp.version>
          <sshd.tests.timeout.factor>1.0</sshd.tests.timeout.factor>
          <sshd.tests.rerun.count>2</sshd.tests.rerun.count>
  
diff --cc sshd-core/src/test/java/org/apache/sshd/server/ServerTest.java
index a6764b6b3,8126d5283..bd7ede74c
--- a/sshd-core/src/test/java/org/apache/sshd/server/ServerTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/server/ServerTest.java
@@@ -88,8 -84,9 +86,9 @@@ import org.apache.sshd.util.test.BaseTe
  import org.apache.sshd.util.test.EchoShell;
  import org.apache.sshd.util.test.EchoShellFactory;
  import org.apache.sshd.util.test.TestChannelListener;
 -import org.junit.Ignore;
  import org.junit.jupiter.api.AfterEach;
  import org.junit.jupiter.api.BeforeEach;
++import org.junit.jupiter.api.Disabled;
  import org.junit.jupiter.api.MethodOrderer.MethodName;
  import org.junit.jupiter.api.Test;
  import org.junit.jupiter.api.TestMethodOrder;
@@@ -284,6 -347,7 +283,7 @@@ class ServerTest extends BaseTestSuppor
       * read the data, filling the ssh window and the tcp socket - the server session becomes idle, but the ssh
       * disconnect message can't be written - the server session is forcibly closed
       */
 -    @Ignore("Unstable test")
++    @Disabled("Unstable test")
      @Test
      void serverIdleTimeoutWithForce() throws Exception {
          final long idleTimeoutValue = TimeUnit.SECONDS.toMillis(5L);