diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 00e80b387ec..be35375c019 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -32,14 +32,14 @@ jobs: env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up JDK 17 - uses: actions/setup-java@v3 + uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0 with: java-version: '17' distribution: 'liberica' - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c with: gradle-version: wrapper - name: Run 'build install javadoc spotlessCheck rat checkPom resolveDependencies pmdMain' with Gradle @@ -57,9 +57,9 @@ jobs: env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0 with: distribution: ${{ matrix.distribution }} java-version: | @@ -96,15 +96,15 @@ jobs: env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up JDK (include all 3 JDKs in env) - uses: actions/setup-java@v3 + uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0 with: distribution: ${{ matrix.distribution }} java-version: | 17 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c with: gradle-version: wrapper - name: Set JAVA_TEST_PATH to 17 @@ -127,7 +127,7 @@ jobs: -PtestJVMVer=${JAVA_TEST_VERSION} \ -PtestJava17Home=${JAVA_HOME_17_X64} \ test --console=plain --no-daemon - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 if: failure() with: name: unit-test-reports-${{ matrix.os }}-${{ matrix.java }} @@ -145,15 +145,15 @@ jobs: env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0 with: distribution: ${{ matrix.distribution }} java-version: | 17 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c with: gradle-version: wrapper - name: Run integration tests @@ -174,7 +174,7 @@ jobs: -PtestJVMVer=${JAVA_TEST_VERSION} \ -PtestJava17Home=${JAVA_HOME_17_X64} \ integrationTest --console=plain --no-daemon - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 if: failure() with: name: integration-test-reports-${{ matrix.os }}-${{ matrix.java }} @@ -192,14 +192,14 @@ jobs: env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0 with: distribution: ${{ matrix.distribution }} java-version: ${{ matrix.java }} - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c with: gradle-version: wrapper - name: Run acceptance tests @@ -218,7 +218,7 @@ jobs: -PtestJVMVer=${JAVA_TEST_VERSION} \ -PtestJava17Home=${JAVA_HOME_17_X64} \ acceptanceTest --console=plain --no-daemon - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 if: failure() with: name: acceptance-test-reports-${{ matrix.os }}-${{ matrix.java }} @@ -236,14 +236,14 @@ jobs: env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0 with: distribution: ${{ matrix.distribution }} java-version: ${{ matrix.java }} - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c with: gradle-version: wrapper - name: Run wan distributed tests @@ -264,7 +264,7 @@ jobs: -PtestJVMVer=${JAVA_TEST_VERSION} \ -PtestJava17Home=${JAVA_HOME_17_X64} \ geode-wan:distributedTest --console=plain --no-daemon - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 if: failure() with: name: wan-distributed-test-reports-${{ matrix.os }}-${{ matrix.java }} @@ -282,14 +282,14 @@ jobs: env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0 with: distribution: ${{ matrix.distribution }} java-version: ${{ matrix.java }} - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c with: gradle-version: wrapper - name: Run cq distributed tests @@ -308,7 +308,7 @@ jobs: -PtestJVMVer=${JAVA_TEST_VERSION} \ -PtestJava17Home=${JAVA_HOME_17_X64} \ geode-cq:distributedTest --console=plain --no-daemon - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 if: failure() with: name: cq-distributed-test-reports-${{ matrix.os }}-${{ matrix.java }} @@ -326,14 +326,14 @@ jobs: env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0 with: distribution: ${{ matrix.distribution }} java-version: ${{ matrix.java }} - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c with: gradle-version: wrapper - name: Run lucene distributed tests @@ -354,7 +354,7 @@ jobs: -PtestJVMVer=${JAVA_TEST_VERSION} \ -PtestJava17Home=${JAVA_HOME_17_X64} \ geode-lucene:distributedTest --console=plain --no-daemon - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 if: failure() with: name: lucene-distributed-test-reports-${{ matrix.os }}-${{ matrix.java }} @@ -372,14 +372,14 @@ jobs: env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0 with: distribution: ${{ matrix.distribution }} java-version: ${{ matrix.java }} - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c with: gradle-version: wrapper - name: Run gfsh, web-mgmt, web distributed tests @@ -401,7 +401,7 @@ jobs: geode-gfsh:distributedTest \ geode-web:distributedTest \ geode-web-management:distributedTest --console=plain --no-daemon - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 if: failure() with: name: mgmt-distributed-test-reports-${{ matrix.os }}-${{ matrix.java }} @@ -420,14 +420,14 @@ jobs: env: DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0 with: distribution: ${{ matrix.distribution }} java-version: ${{ matrix.java }} - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 + uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c with: gradle-version: wrapper - name: Run assembly, connectors, old-client, extensions distributed tests @@ -452,7 +452,7 @@ jobs: geode-old-client:distributedTest \ extensions:geode-modules:distributedTest \ extensions:geode-modules-tomcat10:distributedTest --console=plain --no-daemon - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 if: failure() with: name: assembly-distributed-test-reports-${{ matrix.os }}-${{ matrix.java }} diff --git a/README.md b/README.md index 4dd74940bb6..c74236bb495 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@ [![Apache Geode logo](https://geode.apache.org/img/Apache_Geode_logo.png)](http://geode.apache.org) [![Build Status](https://concourse.apachegeode-ci.info/api/v1/teams/main/pipelines/apache-develop-main/badge)](https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.geode/geode-core/badge.svg)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.geode%22) [![homebrew](https://img.shields.io/homebrew/v/apache-geode.svg)](https://formulae.brew.sh/formula/apache-geode) [![Docker Pulls](https://img.shields.io/docker/pulls/apachegeode/geode.svg)](https://hub.docker.com/r/apachegeode/geode/) [![Total alerts](https://img.shields.io/lgtm/alerts/g/apache/geode.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/apache/geode/alerts/) [![Language grade: Java](https://img.shields.io/lgtm/grade/java/g/apache/geode.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/apache/geode/context:java) [![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/apache/geode.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/apache/geode/context:javascript) [![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/apache/geode.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/apache/geode/context:python) - ## Contents diff --git a/boms/geode-all-bom/src/test/resources/expected-pom.xml b/boms/geode-all-bom/src/test/resources/expected-pom.xml index 65f6a24015d..ca41c043f52 100644 --- a/boms/geode-all-bom/src/test/resources/expected-pom.xml +++ b/boms/geode-all-bom/src/test/resources/expected-pom.xml @@ -195,7 +195,7 @@ io.micrometer micrometer-core - 1.14.0 + 1.15.12 io.swagger.core.v3 @@ -415,7 +415,7 @@ org.slf4j slf4j-api - 2.0.17 + 2.0.18 org.springframework.hateoas @@ -475,22 +475,22 @@ com.fasterxml.jackson.core jackson-core - 2.21.2 + 2.21.5 com.fasterxml.jackson.core jackson-databind - 2.21.2 + 2.21.5 com.fasterxml.jackson.datatype jackson-datatype-joda - 2.21.2 + 2.21.5 com.fasterxml.jackson.datatype jackson-datatype-jsr310 - 2.21.2 + 2.21.5 com.jayway.jsonpath @@ -530,27 +530,27 @@ org.apache.logging.log4j log4j-api - 2.25.4 + 2.25.5 org.apache.logging.log4j log4j-core - 2.25.4 + 2.25.5 org.apache.logging.log4j log4j-jcl - 2.25.4 + 2.25.5 org.apache.logging.log4j log4j-jul - 2.25.4 + 2.25.5 org.apache.logging.log4j log4j-slf4j-impl - 2.25.4 + 2.25.5 org.apache.lucene diff --git a/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy b/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy index d71e6717bad..29e0d699c21 100644 --- a/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy +++ b/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy @@ -46,18 +46,18 @@ class DependencyConstraints { deps.put("jakarta.annotation.version", "2.1.1") deps.put("jakarta.ejb.version", "4.0.1") deps.put("jgroups.version", "3.6.20.Final") - deps.put("log4j.version", "2.25.4") + deps.put("log4j.version", "2.25.5") deps.put("log4j-slf4j2-impl.version", "2.23.1") - deps.put("micrometer.version", "1.14.0") - deps.put("shiro.version", "2.1.0") + deps.put("micrometer.version", "1.15.12") + deps.put("shiro.version", "3.0.0") // GEODE-10583: Pin Bouncy Castle (transitive via shiro-crypto-hash) to a fixed version - deps.put("bouncycastle.version", "1.84") - deps.put("slf4j-api.version", "2.0.17") + deps.put("bouncycastle.version", "1.85") + deps.put("slf4j-api.version", "2.0.18") deps.put("jakarta.transaction-api.version", "2.0.1") deps.put("jboss-modules.version", "1.11.0.Final") - deps.put("jackson.version", "2.21.2") + deps.put("jackson.version", "2.21.5") deps.put("jackson.annotations.version", "2.21") - deps.put("jackson.databind.version", "2.21.2") + deps.put("jackson.databind.version", "2.21.5") // Spring Framework 6.x Migration deps.put("springshell.version", "3.3.3") deps.put("springframework.version", "6.1.21") @@ -85,7 +85,7 @@ class DependencyConstraints { // at o.a.g.sessions.tests.GenericAppServerInstall.java // Jetty 12.0.x for Jakarta EE 10 (Servlet 6.0) compatibility // Jetty 12 reorganized modules under ee10, ee9, ee8 packages - deps.put("jetty.version", "12.0.33") + deps.put("jetty.version", "12.0.37") // These versions are referenced in test.gradle, which is aggressively injected into all projects. deps.put("junit.version", "4.13.2") @@ -108,6 +108,8 @@ class DependencyConstraints { project.dependencies { constraints { + api('org.jline:jline-terminal-jni:3.26.3') + api('org.jline:jline-terminal-ffm:3.26.3') // informal, inter-group dependencySet api(group: 'antlr', name: 'antlr', version: get('antlr.version')) api(group: 'cglib', name: 'cglib', version: get('cglib.version')) @@ -175,8 +177,8 @@ class DependencyConstraints { api(group: 'org.apache.derby', name: 'derby', version: '10.14.2.0') // Apache HttpComponents 5.x - Modern HTTP client with HTTP/2 support api(group: 'org.apache.httpcomponents.client5', name: 'httpclient5', version: '5.4.4') - api(group: 'org.apache.httpcomponents.core5', name: 'httpcore5', version: '5.3.6') - api(group: 'org.apache.httpcomponents.core5', name: 'httpcore5-h2', version: '5.3.6') + api(group: 'org.apache.httpcomponents.core5', name: 'httpcore5', version: '5.4.3') + api(group: 'org.apache.httpcomponents.core5', name: 'httpcore5-h2', version: '5.4.3') // Legacy HttpComponents 4.x (keep temporarily during migration, remove after complete) api(group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13') api(group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.15') diff --git a/geode-assembly/src/acceptanceTest/resources/gradle-test-projects/management/build.gradle b/geode-assembly/src/acceptanceTest/resources/gradle-test-projects/management/build.gradle index a4e0645a450..7c0ca6a2a88 100644 --- a/geode-assembly/src/acceptanceTest/resources/gradle-test-projects/management/build.gradle +++ b/geode-assembly/src/acceptanceTest/resources/gradle-test-projects/management/build.gradle @@ -25,7 +25,7 @@ repositories { dependencies { implementation("${project.group}:geode-core:${project.version}") - runtimeOnly('org.apache.logging.log4j:log4j-slf4j-impl:2.25.4') + runtimeOnly('org.apache.logging.log4j:log4j-slf4j-impl:2.25.5') } application { diff --git a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java index b2fc46e8511..59edba38218 100644 --- a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java +++ b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java @@ -34,7 +34,7 @@ * specific code outside of the {@link GenericAppServerVersion}. */ public class GenericAppServerInstall extends ContainerInstall { - private static final String JETTY_VERSION = "12.0.33"; + private static final String JETTY_VERSION = "12.0.37"; /** * Get the version number, download URL, and container name of a generic app server using diff --git a/geode-assembly/src/integrationTest/resources/assembly_content.txt b/geode-assembly/src/integrationTest/resources/assembly_content.txt index c769db89d0e..862f8c53a3a 100644 --- a/geode-assembly/src/integrationTest/resources/assembly_content.txt +++ b/geode-assembly/src/integrationTest/resources/assembly_content.txt @@ -920,10 +920,10 @@ lib/ST4-4.3.3.jar lib/angus-activation-2.0.0.jar lib/antlr-2.7.7.jar lib/antlr-runtime-3.5.2.jar -lib/asm-9.9.1.jar -lib/asm-commons-9.9.1.jar -lib/asm-tree-9.9.1.jar -lib/bcprov-jdk18on-1.84.jar +lib/asm-9.10.1.jar +lib/asm-commons-9.10.1.jar +lib/asm-tree-9.10.1.jar +lib/bcprov-jdk18on-1.85.jar lib/classgraph-4.8.147.jar lib/classmate-1.5.1.jar lib/commons-beanutils-1.11.0.jar @@ -961,15 +961,15 @@ lib/geode-wan-0.0.0.jar lib/gfsh-dependencies.jar lib/hibernate-validator-8.0.2.Final.jar lib/httpclient5-5.4.4.jar -lib/httpcore5-5.3.6.jar -lib/httpcore5-h2-5.3.6.jar +lib/httpcore5-5.4.3.jar +lib/httpcore5-h2-5.4.3.jar lib/istack-commons-runtime-4.1.1.jar lib/jackson-annotations-2.21.jar -lib/jackson-core-2.21.2.jar -lib/jackson-databind-2.21.2.jar -lib/jackson-dataformat-yaml-2.21.2.jar -lib/jackson-datatype-joda-2.21.2.jar -lib/jackson-datatype-jsr310-2.21.2.jar +lib/jackson-core-2.21.5.jar +lib/jackson-databind-2.21.5.jar +lib/jackson-dataformat-yaml-2.21.5.jar +lib/jackson-datatype-joda-2.21.5.jar +lib/jackson-datatype-jsr310-2.21.5.jar lib/jakarta.activation-api-2.1.3.jar lib/jakarta.annotation-api-2.1.1.jar lib/jakarta.el-api-5.0.0.jar @@ -986,20 +986,20 @@ lib/jakarta.xml.bind-api-4.0.2.jar lib/jaxb-core-4.0.2.jar lib/jaxb-runtime-4.0.2.jar lib/jboss-logging-3.4.3.Final.jar -lib/jetty-ee-12.0.33.jar -lib/jetty-ee10-annotations-12.0.33.jar -lib/jetty-ee10-plus-12.0.33.jar -lib/jetty-ee10-servlet-12.0.33.jar -lib/jetty-ee10-webapp-12.0.33.jar -lib/jetty-http-12.0.33.jar -lib/jetty-io-12.0.33.jar -lib/jetty-jndi-12.0.33.jar -lib/jetty-plus-12.0.33.jar -lib/jetty-security-12.0.33.jar -lib/jetty-server-12.0.33.jar -lib/jetty-session-12.0.33.jar -lib/jetty-util-12.0.33.jar -lib/jetty-xml-12.0.33.jar +lib/jetty-ee-12.0.37.jar +lib/jetty-ee10-annotations-12.0.37.jar +lib/jetty-ee10-plus-12.0.37.jar +lib/jetty-ee10-servlet-12.0.37.jar +lib/jetty-ee10-webapp-12.0.37.jar +lib/jetty-http-12.0.37.jar +lib/jetty-io-12.0.37.jar +lib/jetty-jndi-12.0.37.jar +lib/jetty-plus-12.0.37.jar +lib/jetty-security-12.0.37.jar +lib/jetty-server-12.0.37.jar +lib/jetty-session-12.0.37.jar +lib/jetty-util-12.0.37.jar +lib/jetty-xml-12.0.37.jar lib/jgroups-3.6.20.Final.jar lib/jline-builtins-3.26.3.jar lib/jline-console-3.26.3.jar @@ -1007,24 +1007,26 @@ lib/jline-native-3.26.3.jar lib/jline-reader-3.26.3.jar lib/jline-style-3.26.3.jar lib/jline-terminal-3.26.3.jar +lib/jline-terminal-ffm-3.26.3.jar +lib/jline-terminal-jni-3.26.3.jar lib/jna-5.11.0.jar lib/jna-platform-5.11.0.jar lib/joda-time-2.12.7.jar lib/jopt-simple-5.0.4.jar lib/jul-to-slf4j-2.0.17.jar -lib/log4j-api-2.25.4.jar -lib/log4j-core-2.25.4.jar -lib/log4j-jcl-2.25.4.jar -lib/log4j-jul-2.25.4.jar -lib/log4j-slf4j-impl-2.25.4.jar +lib/log4j-api-2.25.5.jar +lib/log4j-core-2.25.5.jar +lib/log4j-jcl-2.25.5.jar +lib/log4j-jul-2.25.5.jar +lib/log4j-slf4j-impl-2.25.5.jar lib/lucene-analysis-common-9.12.3.jar lib/lucene-analysis-phonetic-9.12.3.jar lib/lucene-core-9.12.3.jar lib/lucene-queries-9.12.3.jar lib/lucene-queryparser-9.12.3.jar -lib/micrometer-commons-1.14.0.jar -lib/micrometer-core-1.14.0.jar -lib/micrometer-observation-1.14.0.jar +lib/micrometer-commons-1.15.12.jar +lib/micrometer-core-1.15.12.jar +lib/micrometer-observation-1.15.12.jar lib/mx4j-3.0.2.jar lib/mx4j-remote-3.0.2.jar lib/mx4j-tools-3.0.1.jar @@ -1032,19 +1034,19 @@ lib/ra.jar lib/reactive-streams-1.0.4.jar lib/reactor-core-3.6.10.jar lib/rmiio-2.1.2.jar -lib/shiro-cache-2.1.0.jar -lib/shiro-config-core-2.1.0.jar -lib/shiro-config-ogdl-2.1.0.jar -lib/shiro-core-2.1.0.jar -lib/shiro-crypto-cipher-2.1.0.jar -lib/shiro-crypto-core-2.1.0.jar -lib/shiro-crypto-hash-2.1.0.jar -lib/shiro-event-2.1.0.jar -lib/shiro-hashes-argon2-2.1.0.jar -lib/shiro-hashes-bcrypt-2.1.0.jar -lib/shiro-lang-2.1.0.jar -lib/slf4j-api-2.0.17.jar -lib/snakeyaml-2.3.jar +lib/shiro-cache-3.0.0.jar +lib/shiro-config-core-3.0.0.jar +lib/shiro-config-ogdl-3.0.0.jar +lib/shiro-core-3.0.0.jar +lib/shiro-crypto-cipher-3.0.0.jar +lib/shiro-crypto-core-3.0.0.jar +lib/shiro-crypto-hash-3.0.0.jar +lib/shiro-event-3.0.0.jar +lib/shiro-hashes-argon2-3.0.0.jar +lib/shiro-hashes-bcrypt-3.0.0.jar +lib/shiro-lang-3.0.0.jar +lib/slf4j-api-2.0.18.jar +lib/snakeyaml-2.5.jar lib/snappy-0.5.jar lib/spring-aop-6.1.21.jar lib/spring-beans-6.1.21.jar diff --git a/geode-assembly/src/integrationTest/resources/expected_jars.txt b/geode-assembly/src/integrationTest/resources/expected_jars.txt index 7d0c0f27220..facbde0d7f6 100644 --- a/geode-assembly/src/integrationTest/resources/expected_jars.txt +++ b/geode-assembly/src/integrationTest/resources/expected_jars.txt @@ -71,6 +71,8 @@ jline-native jline-reader jline-style jline-terminal +jline-terminal-ffm +jline-terminal-jni jna jna-platform joda-time diff --git a/geode-assembly/src/integrationTest/resources/gfsh_dependency_classpath.txt b/geode-assembly/src/integrationTest/resources/gfsh_dependency_classpath.txt index b39d44afd5e..68a5913622f 100644 --- a/geode-assembly/src/integrationTest/resources/gfsh_dependency_classpath.txt +++ b/geode-assembly/src/integrationTest/resources/gfsh_dependency_classpath.txt @@ -21,22 +21,21 @@ spring-shell-starter-3.3.3.jar spring-web-6.1.21.jar commons-lang3-3.18.0.jar rmiio-2.1.2.jar -jackson-datatype-joda-2.21.2.jar -jackson-annotations-2.21.jar -jackson-dataformat-yaml-2.21.2.jar -jackson-core-2.21.2.jar -jackson-datatype-jsr310-2.21.2.jar -jackson-databind-2.21.2.jar +jackson-datatype-jsr310-2.21.5.jar +jackson-datatype-joda-2.21.5.jar +jackson-core-2.21.5.jar +jackson-dataformat-yaml-2.21.5.jar +jackson-databind-2.21.5.jar swagger-annotations-2.2.22.jar jaxb-runtime-4.0.2.jar jaxb-core-4.0.2.jar jakarta.xml.bind-api-4.0.2.jar jopt-simple-5.0.4.jar -log4j-slf4j-impl-2.25.4.jar -log4j-core-2.25.4.jar -log4j-jcl-2.25.4.jar -log4j-jul-2.25.4.jar -log4j-api-2.25.4.jar +log4j-slf4j-impl-2.25.5.jar +log4j-core-2.25.5.jar +log4j-jcl-2.25.5.jar +log4j-jul-2.25.5.jar +log4j-api-2.25.5.jar spring-aop-6.1.21.jar spring-shell-autoconfigure-3.3.3.jar spring-shell-standard-commands-3.3.3.jar @@ -52,6 +51,8 @@ spring-context-6.1.21.jar spring-beans-6.1.21.jar spring-expression-6.1.21.jar spring-core-6.1.21.jar +jline-terminal-jni-3.26.3.jar +jline-terminal-ffm-3.26.3.jar angus-activation-2.0.0.jar jakarta.activation-api-2.1.3.jar lucene-analysis-phonetic-9.12.3.jar @@ -60,14 +61,14 @@ lucene-queryparser-9.12.3.jar lucene-queries-9.12.3.jar lucene-core-9.12.3.jar httpclient5-5.4.4.jar -httpcore5-h2-5.3.6.jar -httpcore5-5.3.6.jar +httpcore5-h2-5.4.3.jar +httpcore5-5.4.3.jar HikariCP-4.0.3.jar antlr-2.7.7.jar istack-commons-runtime-4.1.1.jar commons-validator-1.7.jar -shiro-core-2.1.0.jar -shiro-config-ogdl-2.1.0.jar +shiro-core-3.0.0.jar +shiro-config-ogdl-3.0.0.jar commons-beanutils-1.11.0.jar commons-codec-1.15.jar commons-collections-3.2.2.jar @@ -75,64 +76,66 @@ commons-digester-2.1.jar commons-io-2.19.0.jar commons-logging-1.3.5.jar classgraph-4.8.147.jar -micrometer-core-1.14.0.jar +micrometer-core-1.15.12.jar HdrHistogram-2.2.2.jar fastutil-8.5.8.jar jakarta.resource-api-2.1.0.jar -jetty-ee10-annotations-12.0.33.jar -jetty-ee10-plus-12.0.33.jar +jetty-ee10-annotations-12.0.37.jar +jetty-ee10-plus-12.0.37.jar jakarta.enterprise.cdi-api-4.0.1.jar jakarta.interceptor-api-2.1.0.jar jakarta.annotation-api-2.1.1.jar -jetty-ee10-webapp-12.0.33.jar -jetty-ee10-servlet-12.0.33.jar +jetty-ee10-webapp-12.0.37.jar +jetty-ee10-servlet-12.0.37.jar jakarta.servlet-api-6.0.0.jar jakarta.transaction-api-2.0.1.jar joda-time-2.12.7.jar jna-platform-5.11.0.jar jna-5.11.0.jar -jetty-ee-12.0.33.jar -jetty-session-12.0.33.jar -jetty-plus-12.0.33.jar -jetty-security-12.0.33.jar -jetty-server-12.0.33.jar +shiro-hashes-argon2-3.0.0.jar +shiro-hashes-bcrypt-3.0.0.jar +shiro-crypto-hash-3.0.0.jar +bcprov-jdk18on-1.85.jar +jetty-ee-12.0.37.jar +jetty-session-12.0.37.jar +jetty-plus-12.0.37.jar +jetty-security-12.0.37.jar +jetty-server-12.0.37.jar snappy-0.5.jar jgroups-3.6.20.Final.jar -shiro-cache-2.1.0.jar -shiro-crypto-hash-2.1.0.jar -shiro-crypto-cipher-2.1.0.jar -shiro-config-core-2.1.0.jar -shiro-event-2.1.0.jar -shiro-crypto-core-2.1.0.jar -shiro-lang-2.1.0.jar -shiro-hashes-argon2-2.1.0.jar -shiro-hashes-bcrypt-2.1.0.jar -jetty-xml-12.0.33.jar -jetty-http-12.0.33.jar -jetty-io-12.0.33.jar +shiro-cache-3.0.0.jar +shiro-crypto-cipher-3.0.0.jar +shiro-config-core-3.0.0.jar +shiro-event-3.0.0.jar +shiro-crypto-core-3.0.0.jar +shiro-lang-3.0.0.jar +jetty-xml-12.0.37.jar +jetty-http-12.0.37.jar +jetty-io-12.0.37.jar spring-boot-starter-logging-3.3.13.jar jul-to-slf4j-2.0.17.jar -jetty-jndi-12.0.33.jar -jetty-util-12.0.33.jar -slf4j-api-2.0.17.jar -micrometer-observation-1.14.0.jar -spring-jcl-6.1.21.jar -micrometer-commons-1.14.0.jar -LatencyUtils-2.0.3.jar -reactor-core-3.6.10.jar +jetty-jndi-12.0.37.jar +jetty-util-12.0.37.jar +slf4j-api-2.0.18.jar +jackson-annotations-2.21.jar jline-console-3.26.3.jar jline-builtins-3.26.3.jar jline-reader-3.26.3.jar jline-style-3.26.3.jar jline-terminal-3.26.3.jar +jline-native-3.26.3.jar +micrometer-observation-1.15.12.jar +spring-jcl-6.1.21.jar +micrometer-commons-1.15.12.jar +LatencyUtils-2.0.3.jar +snakeyaml-2.5.jar +reactor-core-3.6.10.jar ST4-4.3.3.jar txw2-4.0.2.jar -snakeyaml-2.3.jar -asm-commons-9.9.1.jar -asm-tree-9.9.1.jar -asm-9.9.1.jar +asm-commons-9.10.1.jar +asm-tree-9.10.1.jar +asm-9.10.1.jar reactive-streams-1.0.4.jar -jline-native-3.26.3.jar antlr-runtime-3.5.2.jar tomcat-embed-el-10.1.42.jar hibernate-validator-8.0.2.Final.jar @@ -142,4 +145,3 @@ jboss-logging-3.4.3.Final.jar classmate-1.5.1.jar jakarta.el-api-5.0.0.jar jakarta.inject-api-2.0.1.jar -bcprov-jdk18on-1.84.jar diff --git a/geode-gfsh/build.gradle b/geode-gfsh/build.gradle index 3c814b10e02..f731cfff12e 100644 --- a/geode-gfsh/build.gradle +++ b/geode-gfsh/build.gradle @@ -40,6 +40,9 @@ dependencies { implementation('com.fasterxml.jackson.core:jackson-databind') implementation('io.swagger.core.v3:swagger-annotations') + runtimeOnly('org.jline:jline-terminal-jni') + runtimeOnly('org.jline:jline-terminal-ffm') + // JAXB dependencies needed for Java 11+ implementation('jakarta.xml.bind:jakarta.xml.bind-api') runtimeOnly('org.glassfish.jaxb:jaxb-runtime') diff --git a/geode-gfsh/src/main/java/org/apache/geode/management/internal/web/shell/HttpOperationInvoker.java b/geode-gfsh/src/main/java/org/apache/geode/management/internal/web/shell/HttpOperationInvoker.java index bc70f5f4be6..c81202f1f82 100644 --- a/geode-gfsh/src/main/java/org/apache/geode/management/internal/web/shell/HttpOperationInvoker.java +++ b/geode-gfsh/src/main/java/org/apache/geode/management/internal/web/shell/HttpOperationInvoker.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.IOException; import java.net.URI; +import java.util.Base64; import java.util.Properties; import java.util.Set; import java.util.concurrent.Executors; @@ -40,7 +41,6 @@ import org.apache.geode.management.internal.cli.CommandRequest; import org.apache.geode.management.internal.cli.shell.Gfsh; import org.apache.geode.management.internal.cli.shell.OperationInvoker; -import org.apache.geode.management.internal.web.domain.QueryParameterSource; import org.apache.geode.management.internal.web.http.support.HttpRequester; import org.apache.geode.management.internal.web.shell.support.HttpMBeanProxyFactory; @@ -383,8 +383,14 @@ public Object invoke(final String resourceName, final String operationName, fina public Set queryNames(final ObjectName objectName, final QueryExp queryExpression) { final URI link = HttpRequester.createURI(baseUrl, "/mbean/query"); - Object content = new QueryParameterSource(objectName, queryExpression); try { + final MultiValueMap content = new LinkedMultiValueMap(); + content.add("objectName", objectName.toString()); + if (queryExpression != null) { + content.add("queryExpression", + Base64.getEncoder().encodeToString(IOUtils.serializeObject(queryExpression))); + } + return (Set) IOUtils .deserializeObject(httpRequester.post(link, content, byte[].class)); } catch (Exception e) { diff --git a/geode-gfsh/src/test/resources/expected-pom.xml b/geode-gfsh/src/test/resources/expected-pom.xml index 45903f49046..579bdc65780 100644 --- a/geode-gfsh/src/test/resources/expected-pom.xml +++ b/geode-gfsh/src/test/resources/expected-pom.xml @@ -349,6 +349,36 @@ + + org.jline + jline-terminal-jni + runtime + + + log4j-to-slf4j + org.apache.logging.log4j + + + * + ch.qos.logback + + + + + org.jline + jline-terminal-ffm + runtime + + + log4j-to-slf4j + org.apache.logging.log4j + + + * + ch.qos.logback + + + org.glassfish.jaxb jaxb-runtime diff --git a/geode-server-all/src/integrationTest/resources/dependency_classpath.txt b/geode-server-all/src/integrationTest/resources/dependency_classpath.txt index 6b665995a61..8ba910109e4 100644 --- a/geode-server-all/src/integrationTest/resources/dependency_classpath.txt +++ b/geode-server-all/src/integrationTest/resources/dependency_classpath.txt @@ -19,25 +19,24 @@ geode-unsafe-0.0.0.jar geode-deployment-legacy-0.0.0.jar snappy-0.5.jar swagger-annotations-2.2.22.jar -jackson-datatype-jsr310-2.21.2.jar -jackson-annotations-2.21.jar -jackson-dataformat-yaml-2.21.2.jar -jackson-core-2.21.2.jar -jackson-datatype-joda-2.21.2.jar -jackson-databind-2.21.2.jar +jackson-datatype-jsr310-2.21.5.jar +jackson-dataformat-yaml-2.21.5.jar +jackson-core-2.21.5.jar +jackson-datatype-joda-2.21.5.jar +jackson-databind-2.21.5.jar httpclient5-5.4.4.jar -httpcore5-h2-5.3.6.jar -httpcore5-5.3.6.jar +httpcore5-h2-5.4.3.jar +httpcore5-5.4.3.jar HikariCP-4.0.3.jar commons-lang3-3.18.0.jar jaxb-runtime-4.0.2.jar jaxb-core-4.0.2.jar jakarta.xml.bind-api-4.0.2.jar -log4j-slf4j-impl-2.25.4.jar -log4j-core-2.25.4.jar -log4j-jcl-2.25.4.jar -log4j-jul-2.25.4.jar -log4j-api-2.25.4.jar +log4j-slf4j-impl-2.25.5.jar +log4j-core-2.25.5.jar +log4j-jcl-2.25.5.jar +log4j-jul-2.25.5.jar +log4j-api-2.25.5.jar spring-shell-starter-3.3.3.jar rmiio-2.1.2.jar antlr-2.7.7.jar @@ -46,18 +45,19 @@ spring-shell-standard-commands-3.3.3.jar spring-shell-standard-3.3.3.jar spring-shell-core-3.3.3.jar commons-io-2.19.0.jar -micrometer-core-1.14.0.jar +micrometer-core-1.15.12.jar jakarta.resource-api-2.1.0.jar -jetty-ee10-annotations-12.0.33.jar +jetty-ee10-annotations-12.0.37.jar spring-boot-starter-validation-3.3.13.jar spring-boot-starter-3.3.13.jar -jetty-ee10-plus-12.0.33.jar +jetty-ee10-plus-12.0.37.jar jakarta.enterprise.cdi-api-4.0.1.jar jakarta.interceptor-api-2.1.0.jar jakarta.annotation-api-2.1.1.jar jakarta.transaction-api-2.0.1.jar -shiro-core-2.1.0.jar +shiro-core-3.0.0.jar jgroups-3.6.20.Final.jar +jackson-annotations-2.21.jar commons-validator-1.7.jar fastutil-8.5.8.jar jna-platform-5.11.0.jar @@ -77,64 +77,66 @@ spring-context-6.1.21.jar spring-beans-6.1.21.jar spring-expression-6.1.21.jar spring-core-6.1.21.jar +jline-terminal-jni-3.26.3.jar +jline-terminal-ffm-3.26.3.jar lucene-analysis-phonetic-9.12.3.jar lucene-analysis-common-9.12.3.jar lucene-queryparser-9.12.3.jar lucene-queries-9.12.3.jar lucene-core-9.12.3.jar -shiro-config-ogdl-2.1.0.jar +shiro-config-ogdl-3.0.0.jar commons-beanutils-1.11.0.jar commons-codec-1.15.jar commons-collections-3.2.2.jar commons-digester-2.1.jar commons-logging-1.3.5.jar HdrHistogram-2.2.2.jar -jetty-ee10-webapp-12.0.33.jar -jetty-ee10-servlet-12.0.33.jar +jetty-ee10-webapp-12.0.37.jar +jetty-ee10-servlet-12.0.37.jar jakarta.servlet-api-6.0.0.jar joda-time-2.12.7.jar -jetty-ee-12.0.33.jar -jetty-session-12.0.33.jar -jetty-plus-12.0.33.jar -jetty-security-12.0.33.jar -jetty-server-12.0.33.jar -shiro-cache-2.1.0.jar -shiro-hashes-argon2-2.1.0.jar -shiro-hashes-bcrypt-2.1.0.jar -shiro-crypto-hash-2.1.0.jar -shiro-crypto-cipher-2.1.0.jar -shiro-config-core-2.1.0.jar -shiro-event-2.1.0.jar -shiro-crypto-core-2.1.0.jar -shiro-lang-2.1.0.jar -jetty-xml-12.0.33.jar -jetty-http-12.0.33.jar -jetty-io-12.0.33.jar -jetty-jndi-12.0.33.jar -jetty-util-12.0.33.jar +shiro-hashes-argon2-3.0.0.jar +shiro-hashes-bcrypt-3.0.0.jar +shiro-crypto-hash-3.0.0.jar +bcprov-jdk18on-1.85.jar +jetty-ee-12.0.37.jar +jetty-session-12.0.37.jar +jetty-plus-12.0.37.jar +jetty-security-12.0.37.jar +jetty-server-12.0.37.jar +shiro-cache-3.0.0.jar +shiro-crypto-cipher-3.0.0.jar +shiro-config-core-3.0.0.jar +shiro-event-3.0.0.jar +shiro-crypto-core-3.0.0.jar +shiro-lang-3.0.0.jar +jetty-xml-12.0.37.jar +jetty-http-12.0.37.jar +jetty-io-12.0.37.jar +jetty-jndi-12.0.37.jar +jetty-util-12.0.37.jar spring-boot-starter-logging-3.3.13.jar jul-to-slf4j-2.0.17.jar -slf4j-api-2.0.17.jar -micrometer-observation-1.14.0.jar -micrometer-commons-1.14.0.jar -LatencyUtils-2.0.3.jar -snakeyaml-2.3.jar -spring-jcl-6.1.21.jar -asm-commons-9.9.1.jar -asm-tree-9.9.1.jar -asm-9.9.1.jar -txw2-4.0.2.jar -bcprov-jdk18on-1.84.jar -reactor-core-3.6.10.jar +slf4j-api-2.0.18.jar jline-console-3.26.3.jar jline-builtins-3.26.3.jar jline-reader-3.26.3.jar jline-style-3.26.3.jar jline-terminal-3.26.3.jar +jline-native-3.26.3.jar +micrometer-observation-1.15.12.jar +micrometer-commons-1.15.12.jar +LatencyUtils-2.0.3.jar +snakeyaml-2.5.jar +spring-jcl-6.1.21.jar +asm-commons-9.10.1.jar +asm-tree-9.10.1.jar +asm-9.10.1.jar +txw2-4.0.2.jar +reactor-core-3.6.10.jar ST4-4.3.3.jar jakarta.enterprise.lang-model-4.0.1.jar reactive-streams-1.0.4.jar -jline-native-3.26.3.jar antlr-runtime-3.5.2.jar tomcat-embed-el-10.1.42.jar hibernate-validator-8.0.2.Final.jar diff --git a/geode-web/src/main/java/org/apache/geode/management/internal/web/controllers/ShellCommandsController.java b/geode-web/src/main/java/org/apache/geode/management/internal/web/controllers/ShellCommandsController.java index 3bc43a48e8d..5e194b19081 100644 --- a/geode-web/src/main/java/org/apache/geode/management/internal/web/controllers/ShellCommandsController.java +++ b/geode-web/src/main/java/org/apache/geode/management/internal/web/controllers/ShellCommandsController.java @@ -17,9 +17,11 @@ import static org.apache.commons.io.IOUtils.toInputStream; import static org.apache.geode.management.internal.web.util.UriUtils.decode; +import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.IOException; import java.nio.file.Path; +import java.util.Base64; import java.util.Optional; import java.util.Set; @@ -29,9 +31,11 @@ import javax.management.MBeanServer; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; +import javax.management.QueryExp; import javax.management.ReflectionException; import org.apache.commons.io.FileUtils; +import org.apache.commons.io.serialization.ValidatingObjectInputStream; import org.apache.commons.lang3.ArrayUtils; import org.springframework.core.io.InputStreamResource; import org.springframework.http.HttpHeaders; @@ -39,7 +43,6 @@ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -55,7 +58,6 @@ import org.apache.geode.management.internal.cli.result.model.ResultModel; import org.apache.geode.management.internal.cli.util.CommandStringBuilder; import org.apache.geode.management.internal.i18n.CliStrings; -import org.apache.geode.management.internal.web.domain.QueryParameterSource; import org.apache.geode.util.internal.GeodeConverter; /** @@ -162,11 +164,21 @@ public ResponseEntity invoke(@RequestParam("resourceName") final String resou } @RequestMapping(method = RequestMethod.POST, value = "/mbean/query") - public ResponseEntity queryNames(@RequestBody final QueryParameterSource query) - throws IOException { + public ResponseEntity queryNames(@RequestParam("objectName") final String objectName, + @RequestParam(value = "queryExpression", required = false) final String queryExpressionBase64) + throws Exception { // Exceptions are caught by the @ExceptionHandler AbstractCommandsController.handleAppException - final Set objectNames = - getMBeanServer().queryNames(query.getObjectName(), query.getQueryExpression()); + ObjectName name = ObjectName.getInstance(decode(objectName)); + QueryExp query = null; + if (queryExpressionBase64 != null) { + byte[] decodedBytes = Base64.getDecoder().decode(queryExpressionBase64); + try (ValidatingObjectInputStream ois = + new ValidatingObjectInputStream(new ByteArrayInputStream(decodedBytes))) { + ois.accept("javax.management.*", "java.lang.*", "java.util.*"); + query = (QueryExp) ois.readObject(); + } + } + final Set objectNames = getMBeanServer().queryNames(name, query); return new ResponseEntity<>(IOUtils.serializeObject(objectNames), HttpStatus.OK); } diff --git a/geode-web/src/main/webapp/WEB-INF/geode-mgmt-servlet.xml b/geode-web/src/main/webapp/WEB-INF/geode-mgmt-servlet.xml index 0ea3261d606..e3c417a4595 100644 --- a/geode-web/src/main/webapp/WEB-INF/geode-mgmt-servlet.xml +++ b/geode-web/src/main/webapp/WEB-INF/geode-mgmt-servlet.xml @@ -48,7 +48,6 @@ limitations under the License. - diff --git a/geode-web/src/test/java/org/apache/geode/management/internal/web/controllers/QueryExpDeserializationTest.java b/geode-web/src/test/java/org/apache/geode/management/internal/web/controllers/QueryExpDeserializationTest.java new file mode 100644 index 00000000000..763e45e6bff --- /dev/null +++ b/geode-web/src/test/java/org/apache/geode/management/internal/web/controllers/QueryExpDeserializationTest.java @@ -0,0 +1,44 @@ +/* + * 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. + */ +package org.apache.geode.management.internal.web.controllers; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.ObjectOutputStream; + +import javax.management.Query; +import javax.management.QueryExp; + +import org.apache.commons.io.serialization.ValidatingObjectInputStream; +import org.junit.Test; + +public class QueryExpDeserializationTest { + @Test + public void testQueryExp() throws Exception { + QueryExp query = Query.eq(Query.attr("Name"), Query.value("mock")); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(baos); + oos.writeObject(query); + oos.close(); + + byte[] decoded = baos.toByteArray(); + ValidatingObjectInputStream ois = + new ValidatingObjectInputStream(new ByteArrayInputStream(decoded)); + ois.accept("javax.management.*", "java.lang.*", "java.util.*"); + + QueryExp q = (QueryExp) ois.readObject(); + System.out.println(q); + } +}