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 <[email protected]>
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>

Reply via email to