quarkusio / quarkus

Quarkus: Supersonic Subatomic Java.
https://quarkus.io
Apache License 2.0
13.37k stars 2.56k forks source link

Cannot use rest-client-reactive-jackson together with quarkus-keycloak-admin-client #20505

Closed kvnb93 closed 2 years ago

kvnb93 commented 2 years ago

Describe the bug

I am using quarkus-keycloak-admin-client in a project and want to add rest-client-reactive-jackson. However, I cannot use both libraries together because quarkus-keycloak-admin-client uses the old rest-client internally and I cannot have two rest clients in the same project. When starting the project with ./mvnw quarkus:dev, it complains about the conflict as follows:

Build step io.quarkus.deployment.steps.CapabilityAggregationStep#aggregateCapabilities threw an exception:
java.lang.IllegalStateException:
Please make sure there is only one provider of the following capabilities:
capability io.quarkus.rest.client is provided by:
  - io.quarkus:quarkus-rest-client-reactive::jar:2.2.3.Final
  - io.quarkus:quarkus-rest-client::jar:2.2.3.Final

Expected behavior

I can use rest-client-reactive-jackson together with quarkus-keycloak-admin-client in a single project. Therefore, I would expect quarkus-keycloak-admin-client to recognize that there is a rest client already present in the project and use that (be it quarkus-rest-client-reactive or quarkus-rest-client).

Actual behavior

When starting the application, I get the following exception:

Build step io.quarkus.deployment.steps.CapabilityAggregationStep#aggregateCapabilities threw an exception:
java.lang.IllegalStateException:
Please make sure there is only one provider of the following capabilities:
capability io.quarkus.rest.client is provided by:
  - io.quarkus:quarkus-rest-client-reactive::jar:2.2.3.Final
  - io.quarkus:quarkus-rest-client::jar:2.2.3.Final

How to Reproduce?

Steps to reproduce the behavior:

  1. Create a new project with: mvn io.quarkus.platform:quarkus-maven-plugin:2.2.3.Final:create \ -DprojectGroupId=org.acme \ -DprojectArtifactId=rest-client-reactive-quickstart \ -DclassName="org.acme.rest.client.CountriesResource" \ -Dpath="/country" \ -Dextensions="resteasy-reactive-jackson,rest-client-reactive-jackson,quarkus-keycloak-admin-client"
  2. cd rest-client-reactive-quickstart
  3. ./mvnw quarkus:dev

Output of uname -a or ver

Darwin MacBook-Pro-KB.local 20.6.0 Darwin Kernel Version 20.6.0: Mon Aug 30 06:12:21 PDT 2021; root:xnu-7195.141.6~3/RELEASE_X86_64 x86_64

Output of java -version

openjdk version "17" 2021-09-14 OpenJDK Runtime Environment Microsoft-26987 (build 17+35) OpenJDK 64-Bit Server VM Microsoft-26987 (build 17+35, mixed mode, sharing)

GraalVM version (if different from Java)

No response

Quarkus version or git rev

2.2.3.Final

Build tool (ie. output of mvnw --version or gradlew --version)

Apache Maven 3.8.1

Additional information

./mvnw dependency:tree reveals that Quarkus Keycloak Admin Client is using the rest client as a dependency:

[INFO] Scanning for projects...
[INFO] 
[INFO] --------------< org.acme:rest-client-reactive-quickstart >--------------
[INFO] Building rest-client-reactive-quickstart 1.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ rest-client-reactive-quickstart ---
[INFO] org.acme:rest-client-reactive-quickstart:jar:1.0.0-SNAPSHOT
[INFO] +- io.quarkus:quarkus-rest-client-reactive-jackson:jar:2.2.3.Final:compile
[INFO] |  +- io.quarkus:quarkus-resteasy-reactive-jackson-common:jar:2.2.3.Final:compile
[INFO] |  |  \- io.quarkus:quarkus-jackson:jar:2.2.3.Final:compile
[INFO] |  |     +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.4:compile
[INFO] |  |     +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.12.4:compile
[INFO] |  |     \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.12.4:compile
[INFO] |  \- io.quarkus:quarkus-rest-client-reactive:jar:2.2.3.Final:compile
[INFO] |     +- io.quarkus:quarkus-jaxrs-client-reactive:jar:2.2.3.Final:compile
[INFO] |     |  \- io.quarkus.resteasy.reactive:resteasy-reactive-client:jar:2.2.3.Final:compile
[INFO] |     |     \- io.vertx:vertx-web-client:jar:4.1.3:compile
[INFO] |     \- org.eclipse.microprofile.rest.client:microprofile-rest-client-api:jar:2.0:compile
[INFO] +- io.quarkus:quarkus-keycloak-admin-client:jar:2.2.3.Final:compile
[INFO] |  +- io.quarkus:quarkus-rest-client:jar:2.2.3.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-resteasy-common:jar:2.2.3.Final:compile
[INFO] |  |  |  +- org.jboss.resteasy:resteasy-core:jar:4.7.0.Final:compile
[INFO] |  |  |  |  +- jakarta.validation:jakarta.validation-api:jar:2.0.2:compile
[INFO] |  |  |  |  \- com.ibm.async:asyncutil:jar:0.1.0:compile
[INFO] |  |  |  \- com.sun.activation:jakarta.activation:jar:1.2.1:compile
[INFO] |  |  +- io.quarkus:quarkus-apache-httpclient:jar:2.2.3.Final:compile
[INFO] |  |  +- org.jboss.resteasy:resteasy-client-microprofile:jar:4.7.0.Final:compile
[INFO] |  |  |  \- org.jboss.resteasy:resteasy-client-microprofile-base:jar:4.7.0.Final:compile
[INFO] |  |  |     \- org.jboss.resteasy:resteasy-cdi:jar:4.7.0.Final:compile
[INFO] |  |  \- jakarta.interceptor:jakarta.interceptor-api:jar:1.2.5:compile
[INFO] |  +- io.quarkus:quarkus-rest-client-jackson:jar:2.2.3.Final:compile
[INFO] |  |  +- org.jboss.resteasy:resteasy-jackson2-provider:jar:4.7.0.Final:compile
[INFO] |  |  |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.4:compile
[INFO] |  |  |  +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.12.4:compile
[INFO] |  |  |  |  +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.12.4:compile
[INFO] |  |  |  |  \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.12.4:compile
[INFO] |  |  |  \- com.github.java-json-tools:json-patch:jar:1.13:compile
[INFO] |  |  |     +- com.github.java-json-tools:msg-simple:jar:1.2:compile
[INFO] |  |  |     |  \- com.github.java-json-tools:btf:jar:1.3:compile
[INFO] |  |  |     \- com.github.java-json-tools:jackson-coreutils:jar:2.0:compile
[INFO] |  |  \- org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:jar:2.0.0.Final:compile
[INFO] |  +- org.keycloak:keycloak-adapter-core:jar:14.0.0:compile
[INFO] |  +- org.keycloak:keycloak-core:jar:14.0.0:compile
[INFO] |  |  +- org.keycloak:keycloak-common:jar:14.0.0:compile
[INFO] |  |  +- org.bouncycastle:bcprov-jdk15on:jar:1.69:compile
[INFO] |  |  +- org.bouncycastle:bcpkix-jdk15on:jar:1.69:compile
[INFO] |  |  |  \- org.bouncycastle:bcutil-jdk15on:jar:1.69:compile
[INFO] |  |  +- com.fasterxml.jackson.core:jackson-core:jar:2.12.4:compile
[INFO] |  |  \- com.fasterxml.jackson.core:jackson-databind:jar:2.12.4:compile
[INFO] |  +- org.keycloak:keycloak-admin-client:jar:14.0.0:compile
[INFO] |  |  +- org.jboss.resteasy:resteasy-client:jar:4.7.0.Final:compile
[INFO] |  |  |  +- org.jboss.resteasy:resteasy-client-api:jar:4.7.0.Final:compile
[INFO] |  |  |  +- org.jboss.resteasy:resteasy-core-spi:jar:4.7.0.Final:compile
[INFO] |  |  |  +- commons-io:commons-io:jar:2.11.0:compile
[INFO] |  |  |  \- org.reactivestreams:reactive-streams:jar:1.0.3:compile
[INFO] |  |  +- org.jboss.resteasy:resteasy-multipart-provider:jar:4.7.0.Final:compile
[INFO] |  |  |  +- com.sun.mail:jakarta.mail:jar:1.6.5:compile
[INFO] |  |  |  +- org.apache.james:apache-mime4j-dom:jar:0.8.3:compile
[INFO] |  |  |  |  \- org.apache.james:apache-mime4j-core:jar:0.8.3:compile
[INFO] |  |  |  \- org.apache.james:apache-mime4j-storage:jar:0.8.3:compile
[INFO] |  |  \- org.jboss.resteasy:resteasy-jaxb-provider:jar:4.7.0.Final:compile
[INFO] |  |     \- org.glassfish.jaxb:jaxb-runtime:jar:2.3.3-b02:compile
[INFO] |  |        +- org.glassfish.jaxb:txw2:jar:2.3.3-b02:compile
[INFO] |  |        \- com.sun.istack:istack-commons-runtime:jar:3.0.10:compile
[INFO] |  +- org.apache.httpcomponents:httpasyncclient:jar:4.1.4:compile
[INFO] |  |  +- org.apache.httpcomponents:httpcore:jar:4.4.14:compile
[INFO] |  |  \- org.apache.httpcomponents:httpcore-nio:jar:4.4.14:compile
[INFO] |  +- org.keycloak:keycloak-authz-client:jar:14.0.0:compile
[INFO] |  |  \- org.jboss.logging:jboss-logging:jar:3.4.2.Final:compile
[INFO] |  \- org.jboss.logging:commons-logging-jboss-logging:jar:1.0.0.Final:compile
[INFO] +- io.quarkus:quarkus-resteasy-reactive-jackson:jar:2.2.3.Final:compile
[INFO] +- io.quarkus:quarkus-arc:jar:2.2.3.Final:compile
[INFO] |  +- io.quarkus.arc:arc:jar:2.2.3.Final:compile
[INFO] |  |  +- jakarta.enterprise:jakarta.enterprise.cdi-api:jar:2.0.2:compile
[INFO] |  |  |  \- jakarta.el:jakarta.el-api:jar:3.0.3:compile
[INFO] |  |  +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] |  |  \- jakarta.transaction:jakarta.transaction-api:jar:1.3.3:compile
[INFO] |  +- io.quarkus:quarkus-core:jar:2.2.3.Final:compile
[INFO] |  |  +- jakarta.inject:jakarta.inject-api:jar:1.0:compile
[INFO] |  |  +- io.quarkus:quarkus-ide-launcher:jar:2.2.3.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-development-mode-spi:jar:2.2.3.Final:compile
[INFO] |  |  +- io.smallrye.config:smallrye-config:jar:2.4.4:compile
[INFO] |  |  |  \- io.smallrye.config:smallrye-config-core:jar:2.4.4:compile
[INFO] |  |  |     +- org.eclipse.microprofile.config:microprofile-config-api:jar:2.0:compile
[INFO] |  |  |     +- io.smallrye.common:smallrye-common-expression:jar:1.6.0:compile
[INFO] |  |  |     |  \- io.smallrye.common:smallrye-common-function:jar:1.6.0:compile
[INFO] |  |  |     +- io.smallrye.common:smallrye-common-constraint:jar:1.6.0:compile
[INFO] |  |  |     +- io.smallrye.common:smallrye-common-classloader:jar:1.6.0:compile
[INFO] |  |  |     \- io.smallrye.config:smallrye-config-common:jar:2.4.4:compile
[INFO] |  |  +- org.jboss.logmanager:jboss-logmanager-embedded:jar:1.0.9:compile
[INFO] |  |  +- org.jboss.logging:jboss-logging-annotations:jar:2.2.1.Final:compile
[INFO] |  |  +- org.jboss.threads:jboss-threads:jar:3.4.2.Final:compile
[INFO] |  |  +- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] |  |  +- org.jboss.slf4j:slf4j-jboss-logmanager:jar:1.1.0.Final:compile
[INFO] |  |  +- org.graalvm.sdk:graal-sdk:jar:21.2.0:compile
[INFO] |  |  +- org.wildfly.common:wildfly-common:jar:1.5.4.Final-format-001:compile
[INFO] |  |  \- io.quarkus:quarkus-bootstrap-runner:jar:2.2.3.Final:compile
[INFO] |  \- org.eclipse.microprofile.context-propagation:microprofile-context-propagation-api:jar:1.2:compile
[INFO] +- io.quarkus:quarkus-resteasy-reactive:jar:2.2.3.Final:compile
[INFO] |  +- org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec:jar:2.0.1.Final:compile
[INFO] |  +- io.quarkus:quarkus-resteasy-reactive-server-common:jar:2.2.3.Final:compile
[INFO] |  |  +- io.quarkus.resteasy.reactive:resteasy-reactive:jar:2.2.3.Final:compile
[INFO] |  |  \- io.quarkus.resteasy.reactive:resteasy-reactive-vertx:jar:2.2.3.Final:compile
[INFO] |  +- io.quarkus:quarkus-resteasy-reactive-common:jar:2.2.3.Final:compile
[INFO] |  |  +- io.quarkus.resteasy.reactive:resteasy-reactive-common:jar:2.2.3.Final:compile
[INFO] |  |  |  +- io.smallrye.reactive:mutiny:jar:1.0.0:compile
[INFO] |  |  |  \- io.smallrye.common:smallrye-common-annotation:jar:1.6.0:compile
[INFO] |  |  +- io.quarkus:quarkus-mutiny:jar:2.2.3.Final:compile
[INFO] |  |  |  +- io.quarkus:quarkus-smallrye-context-propagation:jar:2.2.3.Final:compile
[INFO] |  |  |  |  \- io.smallrye:smallrye-context-propagation:jar:1.2.0:compile
[INFO] |  |  |  |     +- io.smallrye:smallrye-context-propagation-api:jar:1.2.0:compile
[INFO] |  |  |  |     \- io.smallrye:smallrye-context-propagation-storage:jar:1.2.0:compile
[INFO] |  |  |  \- io.smallrye.reactive:mutiny-smallrye-context-propagation:jar:1.0.0:compile
[INFO] |  |  \- io.quarkus:quarkus-vertx-core:jar:2.2.3.Final:compile
[INFO] |  |     +- io.quarkus:quarkus-netty:jar:2.2.3.Final:compile
[INFO] |  |     |  +- io.netty:netty-codec:jar:4.1.67.Final:compile
[INFO] |  |     |  +- io.netty:netty-codec-http:jar:4.1.67.Final:compile
[INFO] |  |     |  +- io.netty:netty-codec-http2:jar:4.1.67.Final:compile
[INFO] |  |     |  \- io.netty:netty-handler:jar:4.1.67.Final:compile
[INFO] |  |     +- io.netty:netty-codec-haproxy:jar:4.1.67.Final:compile
[INFO] |  |     |  +- io.netty:netty-buffer:jar:4.1.67.Final:compile
[INFO] |  |     |  \- io.netty:netty-transport:jar:4.1.67.Final:compile
[INFO] |  |     \- io.vertx:vertx-core:jar:4.1.3:compile
[INFO] |  |        +- io.netty:netty-common:jar:4.1.67.Final:compile
[INFO] |  |        +- io.netty:netty-handler-proxy:jar:4.1.67.Final:compile
[INFO] |  |        |  \- io.netty:netty-codec-socks:jar:4.1.67.Final:compile
[INFO] |  |        +- io.netty:netty-resolver:jar:4.1.67.Final:compile
[INFO] |  |        \- io.netty:netty-resolver-dns:jar:4.1.67.Final:compile
[INFO] |  |           \- io.netty:netty-codec-dns:jar:4.1.67.Final:compile
[INFO] |  +- io.quarkus:quarkus-vertx-http:jar:2.2.3.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-security-runtime-spi:jar:2.2.3.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-vertx-http-dev-console-runtime-spi:jar:2.2.3.Final:compile
[INFO] |  |  +- io.quarkus.security:quarkus-security:jar:1.1.4.Final:compile
[INFO] |  |  \- io.vertx:vertx-web:jar:4.1.3:compile
[INFO] |  |     +- io.vertx:vertx-web-common:jar:4.1.3:compile
[INFO] |  |     +- io.vertx:vertx-auth-common:jar:4.1.3:compile
[INFO] |  |     \- io.vertx:vertx-bridge-common:jar:4.1.3:compile
[INFO] |  \- io.quarkus:quarkus-jsonp:jar:2.2.3.Final:compile
[INFO] |     \- org.glassfish:jakarta.json:jar:1.1.6:compile
[INFO] +- io.quarkus:quarkus-junit5:jar:2.2.3.Final:test
[INFO] |  +- io.quarkus:quarkus-bootstrap-core:jar:2.2.3.Final:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-app-model:jar:2.2.3.Final:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-maven-resolver:jar:2.2.3.Final:test
[INFO] |  |  |  +- org.apache.maven:maven-embedder:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-settings:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-core:jar:3.8.1:test
[INFO] |  |  |  |  |  +- org.apache.maven:maven-artifact:jar:3.8.1:test
[INFO] |  |  |  |  |  \- org.codehaus.plexus:plexus-component-annotations:jar:2.1.0:test
[INFO] |  |  |  |  +- org.apache.maven:maven-plugin-api:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-model:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-model-builder:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-builder-support:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-api:jar:1.6.2:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-util:jar:1.6.2:test
[INFO] |  |  |  |  +- org.apache.maven.shared:maven-shared-utils:jar:3.3.3:test
[INFO] |  |  |  |  +- com.google.inject:guice:jar:no_aop:4.2.1:test
[INFO] |  |  |  |  |  \- com.google.guava:guava:jar:30.1.1-jre:test
[INFO] |  |  |  |  |     +- com.google.guava:failureaccess:jar:1.0.1:test
[INFO] |  |  |  |  |     \- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-utils:jar:3.2.1:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-classworlds:jar:2.6.0:test
[INFO] |  |  |  |  \- commons-cli:commons-cli:jar:1.4:test
[INFO] |  |  |  +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.4:test
[INFO] |  |  |  +- org.apache.maven:maven-settings-builder:jar:3.8.1:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-interpolation:jar:1.25:test
[INFO] |  |  |  |  \- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4:test
[INFO] |  |  |  |     \- org.sonatype.plexus:plexus-cipher:jar:1.4:test
[INFO] |  |  |  +- org.apache.maven:maven-resolver-provider:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-repository-metadata:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-spi:jar:1.6.2:test
[INFO] |  |  |  |  \- org.apache.maven.resolver:maven-resolver-impl:jar:1.6.2:test
[INFO] |  |  |  +- org.apache.maven.resolver:maven-resolver-connector-basic:jar:1.6.2:test
[INFO] |  |  |  +- org.apache.maven.resolver:maven-resolver-transport-wagon:jar:1.6.2:test
[INFO] |  |  |  +- org.apache.maven.wagon:wagon-http:jar:3.4.3:test
[INFO] |  |  |  |  +- org.apache.maven.wagon:wagon-http-shared:jar:3.4.3:test
[INFO] |  |  |  |  |  \- org.jsoup:jsoup:jar:1.12.1:test
[INFO] |  |  |  |  \- org.apache.maven.wagon:wagon-provider-api:jar:3.4.3:test
[INFO] |  |  |  \- org.apache.maven.wagon:wagon-file:jar:3.4.3:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-gradle-resolver:jar:2.2.3.Final:test
[INFO] |  |  \- io.smallrye.common:smallrye-common-io:jar:1.6.0:compile
[INFO] |  +- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.4:test
[INFO] |  +- io.quarkus:quarkus-test-common:jar:2.2.3.Final:test
[INFO] |  |  +- io.quarkus:quarkus-core-deployment:jar:2.2.3.Final:test
[INFO] |  |  |  +- org.aesh:readline:jar:2.1:test
[INFO] |  |  |  |  \- org.fusesource.jansi:jansi:jar:1.18:test
[INFO] |  |  |  +- io.quarkus.gizmo:gizmo:jar:1.0.9.Final:test
[INFO] |  |  |  |  \- org.ow2.asm:asm-util:jar:9.1:test
[INFO] |  |  |  |     +- org.ow2.asm:asm-tree:jar:9.1:test
[INFO] |  |  |  |     \- org.ow2.asm:asm-analysis:jar:9.1:test
[INFO] |  |  |  +- org.ow2.asm:asm:jar:9.1:test
[INFO] |  |  |  +- io.quarkus:quarkus-class-change-agent:jar:2.2.3.Final:test
[INFO] |  |  |  +- io.quarkus:quarkus-devtools-utilities:jar:2.2.3.Final:test
[INFO] |  |  |  +- io.quarkus:quarkus-builder:jar:2.2.3.Final:test
[INFO] |  |  |  \- org.junit.platform:junit-platform-launcher:jar:1.7.2:test
[INFO] |  |  +- io.quarkus:quarkus-jsonp-deployment:jar:2.2.3.Final:test
[INFO] |  |  \- org.jboss:jandex:jar:2.3.1.Final:test
[INFO] |  +- org.junit.jupiter:junit-jupiter:jar:5.7.2:test
[INFO] |  |  +- org.junit.jupiter:junit-jupiter-api:jar:5.7.2:test
[INFO] |  |  |  +- org.apiguardian:apiguardian-api:jar:1.1.0:test
[INFO] |  |  |  +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] |  |  |  \- org.junit.platform:junit-platform-commons:jar:1.7.2:test
[INFO] |  |  +- org.junit.jupiter:junit-jupiter-params:jar:5.7.2:test
[INFO] |  |  \- org.junit.jupiter:junit-jupiter-engine:jar:5.7.2:test
[INFO] |  |     \- org.junit.platform:junit-platform-engine:jar:1.7.2:test
[INFO] |  \- com.thoughtworks.xstream:xstream:jar:1.4.17:test
[INFO] |     \- io.github.x-stream:mxparser:jar:1.2.1:test
[INFO] |        \- xmlpull:xmlpull:jar:1.1.3.1:test
[INFO] \- io.rest-assured:rest-assured:jar:4.4.0:test
[INFO]    +- org.codehaus.groovy:groovy:jar:3.0.8:test
[INFO]    +- org.codehaus.groovy:groovy-xml:jar:3.0.8:test
[INFO]    +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[INFO]    |  \- commons-codec:commons-codec:jar:1.15:compile
[INFO]    +- org.apache.httpcomponents:httpmime:jar:4.5.13:test
[INFO]    +- org.hamcrest:hamcrest:jar:2.1:test
[INFO]    +- org.ccil.cowan.tagsoup:tagsoup:jar:1.2.1:test
[INFO]    +- io.rest-assured:json-path:jar:4.4.0:test
[INFO]    |  +- org.codehaus.groovy:groovy-json:jar:3.0.8:test
[INFO]    |  \- io.rest-assured:rest-assured-common:jar:4.4.0:test
[INFO]    \- io.rest-assured:xml-path:jar:4.4.0:test
[INFO]       +- org.apache.commons:commons-lang3:jar:3.12.0:test
[INFO]       +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3:test
[INFO]       \- com.sun.xml.bind:jaxb-impl:jar:2.3.3:test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.868 s
[INFO] Finished at: 2021-10-01T15:51:04+02:00
[INFO] ------------------------------------------------------------------------
quarkus-bot[bot] commented 2 years ago

/cc @geoand, @gsmet, @michalszynkiewicz, @pedroigor, @sberyozkin

geoand commented 2 years ago

@sberyozkin did we not have a replacement for this one?

sberyozkin commented 2 years ago

Hi @geoand No, I don't see how it can happen as it is a Keycloak managed library which uses the classic RestEasy

sberyozkin commented 2 years ago

The same would be the case for quarkus-keycloak-authorization

geoand commented 2 years ago

Thanks for the information.

How do we plan to tackle this?

michalszynkiewicz commented 2 years ago

I took a brief look at keycloak-admin-client and it seems to me that it could work with microprofile rest client instead of hard dependency on resteasy (but I might've missed something). Could we have some keycloak-admin-client-core, or keycloak-admin-client-base, pulled out from the admin-client that would depend only on MP?

michalszynkiewicz commented 2 years ago

I'd be happy to help with ^, @sberyozkin do you know who in the keycloak team I could contact about it?

kvnb93 commented 2 years ago

Any news on this @geoand @sberyozkin?

benhalasi commented 2 years ago

The same issue is present with quarkus-resteasy-mutiny when following mongodb-panache guide

Should I open a separate issue for quarkus-resteasy-mutiny or this issue could be a general one amongst all extensions?

geoand commented 2 years ago

I'd be happy to help with ^, @sberyozkin do you know who in the keycloak team I could contact about it?

@sberyozkin I think this is something we need to tackle soon :)

geoand commented 2 years ago

The same issue is present with quarkus-resteasy-mutiny when following mongodb-panache guide

What do you mean exactly?

benhalasi commented 2 years ago

Firstly I have to say that I'm just getting started with quarkus so there's a chance I only misconfigured something.

I started to setup my project based on mongodb-panache guide

I have this pom.xml:

<properties>
    <compiler-plugin.version>3.8.1</compiler-plugin.version>
    <maven.compiler.parameters>true</maven.compiler.parameters>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
    <quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
    <quarkus.platform.version>2.5.4.Final</quarkus.platform.version>
    <surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>${quarkus.platform.group-id}</groupId>
        <artifactId>${quarkus.platform.artifact-id}</artifactId>
        <version>${quarkus.platform.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>

    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-mongodb-rest-data-panache</artifactId>
    </dependency>

    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy-mutiny</artifactId>
    </dependency>

    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy-reactive-jackson</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy-reactive</artifactId>
    </dependency>

    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-arc</artifactId>
    </dependency>

    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-junit5</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>io.rest-assured</groupId>
      <artifactId>rest-assured</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>${quarkus.platform.group-id}</groupId>
        <artifactId>quarkus-maven-plugin</artifactId>
        <version>${quarkus.platform.version}</version>
        <extensions>true</extensions>
        <executions>
          <execution>
            <goals>
              <goal>build</goal>
              <goal>generate-code</goal>
              <goal>generate-code-tests</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${compiler-plugin.version}</version>
        <configuration>
          <parameters>${maven.compiler.parameters}</parameters>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire-plugin.version}</version>
        <configuration>
          <systemPropertyVariables>
            <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
            <maven.home>${maven.home}</maven.home>
          </systemPropertyVariables>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>native</id>
      <activation>
        <property>
          <name>native</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>${surefire-plugin.version}</version>
            <executions>
              <execution>
                <goals>
                  <goal>integration-test</goal>
                  <goal>verify</goal>
                </goals>
                <configuration>
                  <systemPropertyVariables>
                    <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
                    <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                    <maven.home>${maven.home}</maven.home>
                  </systemPropertyVariables>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <properties>
        <quarkus.package.type>native</quarkus.package.type>
      </properties>
    </profile>
  </profiles>

./mvnw quarkus:dev

2021-12-22 17:27:07,100 ERROR [io.qua.dep.dev.IsolatedDevModeMain] (main) Failed to start quarkus: java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
        [error]: Build step io.quarkus.deployment.steps.CapabilityAggregationStep#aggregateCapabilities threw an exception: java.lang.IllegalStateException: Please make sure there is only one provider of the following capabilities:
capability io.quarkus.rest is provided by:
  - io.quarkus:quarkus-resteasy-reactive::jar:2.5.4.Final
  - io.quarkus:quarkus-resteasy::jar:2.5.4.Final
        at io.quarkus.deployment.steps.CapabilityAggregationStep.aggregateCapabilities(CapabilityAggregationStep.java:147)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:887)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
        at java.base/java.lang.Thread.run(Thread.java:832)
        at org.jboss.threads.JBossThread.run(JBossThread.java:501)

        at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:330)
        at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:252)
        at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:60)
        at io.quarkus.deployment.dev.IsolatedDevModeMain.firstStart(IsolatedDevModeMain.java:93)
        at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:456)
        at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:67)
        at io.quarkus.bootstrap.app.CuratedApplication.runInCl(CuratedApplication.java:149)
        at io.quarkus.bootstrap.app.CuratedApplication.runInAugmentClassLoader(CuratedApplication.java:105)
        at io.quarkus.deployment.dev.DevModeMain.start(DevModeMain.java:145)
        at io.quarkus.deployment.dev.DevModeMain.main(DevModeMain.java:63)
Caused by: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
        [error]: Build step io.quarkus.deployment.steps.CapabilityAggregationStep#aggregateCapabilities threw an exception: java.lang.IllegalStateException: Please make sure there is only one provider of the following capabilities:
capability io.quarkus.rest is provided by:
  - io.quarkus:quarkus-resteasy-reactive::jar:2.5.4.Final
  - io.quarkus:quarkus-resteasy::jar:2.5.4.Final
        at io.quarkus.deployment.steps.CapabilityAggregationStep.aggregateCapabilities(CapabilityAggregationStep.java:147)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:887)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
        at java.base/java.lang.Thread.run(Thread.java:832)
        at org.jboss.threads.JBossThread.run(JBossThread.java:501)

        at io.quarkus.builder.Execution.run(Execution.java:116)
        at io.quarkus.builder.BuildExecutionBuilder.execute(BuildExecutionBuilder.java:79)
        at io.quarkus.deployment.QuarkusAugmentor.run(QuarkusAugmentor.java:161)
        at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:328)
        ... 9 more
Caused by: java.lang.IllegalStateException: Please make sure there is only one provider of the following capabilities:
capability io.quarkus.rest is provided by:
  - io.quarkus:quarkus-resteasy-reactive::jar:2.5.4.Final
  - io.quarkus:quarkus-resteasy::jar:2.5.4.Final
        at io.quarkus.deployment.steps.CapabilityAggregationStep.aggregateCapabilities(CapabilityAggregationStep.java:147)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:887)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
        at java.base/java.lang.Thread.run(Thread.java:832)
        at org.jboss.threads.JBossThread.run(JBossThread.java:501)

dependency tree

in this project only io.quarkus:quarkus-resteasy-mutiny:jar:2.5.4.Final depends on io.quarkus:quarkus-resteasy:jar:2.5.4.Final

[INFO] +- io.quarkus:quarkus-mongodb-rest-data-panache:jar:2.5.4.Final:compile
[INFO] |  +- io.quarkus:quarkus-rest-data-panache:jar:2.5.4.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-panache-common:jar:2.5.4.Final:compile
[INFO] |  |  \- jakarta.validation:jakarta.validation-api:jar:2.0.2:compile
[INFO] |  +- io.quarkus:quarkus-mongodb-panache:jar:2.5.4.Final:compile
[INFO] |  |  \- io.quarkus:quarkus-mongodb-panache-common:jar:2.5.4.Final:compile
[INFO] |  |     +- io.quarkus:quarkus-mongodb-client:jar:2.5.4.Final:compile
[INFO] |  |     |  +- io.quarkus:quarkus-mutiny-reactive-streams-operators:jar:2.5.4.Final:compile
[INFO] |  |     |  |  +- org.eclipse.microprofile.reactive-streams-operators:microprofile-reactive-streams-operators-api:jar:1.0.1:compile
[INFO] |  |     |  |  +- org.eclipse.microprofile.reactive-streams-operators:microprofile-reactive-streams-operators-core:jar:1.0.1:compile
[INFO] |  |     |  |  \- io.smallrye.reactive:mutiny-reactive-streams-operators:jar:1.1.2:compile
[INFO] |  |     |  +- org.mongodb:mongodb-driver-sync:jar:4.3.4:compile
[INFO] |  |     |  |  +- org.mongodb:bson:jar:4.3.4:compile
[INFO] |  |     |  |  \- org.mongodb:mongodb-driver-core:jar:4.3.4:compile
[INFO] |  |     |  +- org.mongodb:mongodb-driver-reactivestreams:jar:4.3.4:compile
[INFO] |  |     |  |  \- io.projectreactor:reactor-core:jar:3.2.22.RELEASE:runtime
[INFO] |  |     |  \- org.mongodb:mongodb-crypt:jar:1.2.1:compile
[INFO] |  |     |     \- net.java.dev.jna:jna:jar:5.8.0:compile
[INFO] |  |     +- io.quarkus:quarkus-panacheql:jar:2.5.4.Final:compile
[INFO] |  |     |  \- org.antlr:antlr4-runtime:jar:4.9.2:compile
[INFO] |  |     \- io.quarkus:quarkus-narayana-jta:jar:2.5.4.Final:compile
[INFO] |  |        +- io.smallrye:smallrye-context-propagation-jta:jar:1.2.2:compile
[INFO] |  |        +- io.smallrye.reactive:smallrye-reactive-converter-api:jar:2.6.0:compile
[INFO] |  |        +- io.smallrye.reactive:smallrye-reactive-converter-mutiny:jar:2.6.0:compile
[INFO] |  |        +- org.jboss.narayana.jta:narayana-jta:jar:5.12.0.Final:compile
[INFO] |  |        |  +- org.jboss:jboss-transaction-spi:jar:7.6.0.Final:compile
[INFO] |  |        |  \- org.jboss.spec.javax.resource:jboss-connector-api_1.7_spec:jar:1.0.0.Final:compile
[INFO] |  |        \- org.jboss.narayana.jts:narayana-jts-integration:jar:5.12.0.Final:compile
[INFO] |  \- jakarta.persistence:jakarta.persistence-api:jar:2.2.3:compile
[INFO] +- io.quarkus:quarkus-resteasy-mutiny:jar:2.5.4.Final:compile
[INFO] |  +- io.quarkus:quarkus-core:jar:2.5.4.Final:compile
[INFO] |  |  +- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] |  |  +- jakarta.enterprise:jakarta.enterprise.cdi-api:jar:2.0.2:compile
[INFO] |  |  |  +- jakarta.el:jakarta.el-api:jar:3.0.3:compile
[INFO] |  |  |  \- jakarta.interceptor:jakarta.interceptor-api:jar:1.2.5:compile
[INFO] |  |  +- jakarta.inject:jakarta.inject-api:jar:1.0:compile
[INFO] |  |  +- io.quarkus:quarkus-ide-launcher:jar:2.5.4.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-development-mode-spi:jar:2.5.4.Final:compile
[INFO] |  |  +- io.smallrye.config:smallrye-config:jar:2.7.0:compile
[INFO] |  |  |  \- io.smallrye.config:smallrye-config-core:jar:2.7.0:compile
[INFO] |  |  |     +- org.eclipse.microprofile.config:microprofile-config-api:jar:2.0:compile
[INFO] |  |  |     +- io.smallrye.common:smallrye-common-expression:jar:1.8.0:compile
[INFO] |  |  |     |  \- io.smallrye.common:smallrye-common-function:jar:1.8.0:compile
[INFO] |  |  |     +- io.smallrye.common:smallrye-common-constraint:jar:1.8.0:compile
[INFO] |  |  |     +- io.smallrye.common:smallrye-common-classloader:jar:1.8.0:compile
[INFO] |  |  |     \- io.smallrye.config:smallrye-config-common:jar:2.7.0:compile
[INFO] |  |  +- org.jboss.logging:jboss-logging:jar:3.4.2.Final:compile
[INFO] |  |  +- org.jboss.logmanager:jboss-logmanager-embedded:jar:1.0.9:compile
[INFO] |  |  +- org.jboss.logging:jboss-logging-annotations:jar:2.2.1.Final:compile
[INFO] |  |  +- org.jboss.threads:jboss-threads:jar:3.4.2.Final:compile
[INFO] |  |  +- org.slf4j:slf4j-api:jar:1.7.30:compile
[INFO] |  |  +- org.jboss.slf4j:slf4j-jboss-logmanager:jar:1.1.0.Final:compile
[INFO] |  |  +- org.graalvm.sdk:graal-sdk:jar:21.3.0:compile
[INFO] |  |  +- org.wildfly.common:wildfly-common:jar:1.5.4.Final-format-001:compile
[INFO] |  |  \- io.quarkus:quarkus-bootstrap-runner:jar:2.5.4.Final:compile
[INFO] |  +- io.quarkus:quarkus-resteasy:jar:2.5.4.Final:compile
[INFO] |  |  \- io.quarkus:quarkus-resteasy-server-common:jar:2.5.4.Final:compile
[INFO] |  \- io.quarkus:quarkus-resteasy-mutiny-common:jar:2.5.4.Final:compile
[INFO] |     +- io.quarkus:quarkus-resteasy-common:jar:2.5.4.Final:compile
[INFO] |     |  +- org.jboss.resteasy:resteasy-core:jar:4.7.3.Final:compile
[INFO] |     |  |  +- org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:jar:2.0.0.Final:compile
[INFO] |     |  |  \- com.ibm.async:asyncutil:jar:0.1.0:compile
[INFO] |     |  \- com.sun.activation:jakarta.activation:jar:1.2.1:compile
[INFO] |     +- io.quarkus:quarkus-mutiny:jar:2.5.4.Final:compile
[INFO] |     |  +- io.smallrye.reactive:mutiny:jar:1.1.2:compile
[INFO] |     |  +- io.quarkus:quarkus-smallrye-context-propagation:jar:2.5.4.Final:compile
[INFO] |     |  |  \- io.smallrye:smallrye-context-propagation:jar:1.2.2:compile
[INFO] |     |  |     +- io.smallrye:smallrye-context-propagation-api:jar:1.2.2:compile
[INFO] |     |  |     \- io.smallrye:smallrye-context-propagation-storage:jar:1.2.2:compile
[INFO] |     |  \- io.smallrye.reactive:mutiny-smallrye-context-propagation:jar:1.1.2:compile
[INFO] |     +- org.jboss.resteasy:resteasy-client:jar:4.7.3.Final:compile
[INFO] |     |  +- org.jboss.resteasy:resteasy-client-api:jar:4.7.3.Final:compile
[INFO] |     |  +- org.jboss.resteasy:resteasy-core-spi:jar:4.7.3.Final:compile
[INFO] |     |  +- commons-io:commons-io:jar:2.11.0:compile
[INFO] |     |  \- org.reactivestreams:reactive-streams:jar:1.0.3:compile
[INFO] |     \- io.quarkus:quarkus-apache-httpclient:jar:2.5.4.Final:compile
[INFO] +- io.quarkus:quarkus-resteasy-reactive-jackson:jar:2.5.4.Final:compile
[INFO] |  \- io.quarkus:quarkus-resteasy-reactive-jackson-common:jar:2.5.4.Final:compile
[INFO] |     \- io.quarkus:quarkus-jackson:jar:2.5.4.Final:compile
[INFO] |        +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.6:compile
[INFO] |        |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.6:compile
[INFO] |        |  \- com.fasterxml.jackson.core:jackson-core:jar:2.12.6:compile
[INFO] |        +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.12.6:compile
[INFO] |        +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.12.6:compile
[INFO] |        \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.12.6:compile
[INFO] +- io.quarkus:quarkus-resteasy-reactive:jar:2.5.4.Final:compile
[INFO] |  +- org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec:jar:2.0.1.Final:compile
[INFO] |  +- io.quarkus:quarkus-resteasy-reactive-server-common:jar:2.5.4.Final:compile
[INFO] |  |  +- io.quarkus.resteasy.reactive:resteasy-reactive:jar:2.5.4.Final:compile
[INFO] |  |  \- io.quarkus.resteasy.reactive:resteasy-reactive-vertx:jar:2.5.4.Final:compile
[INFO] |  +- io.quarkus:quarkus-resteasy-reactive-common:jar:2.5.4.Final:compile
[INFO] |  |  +- io.quarkus.resteasy.reactive:resteasy-reactive-common:jar:2.5.4.Final:compile
[INFO] |  |  |  \- io.smallrye.common:smallrye-common-annotation:jar:1.8.0:compile
[INFO] |  |  \- io.quarkus:quarkus-vertx:jar:2.5.4.Final:compile
[INFO] |  |     +- io.quarkus:quarkus-netty:jar:2.5.4.Final:compile
[INFO] |  |     |  +- io.netty:netty-codec:jar:4.1.72.Final:compile
[INFO] |  |     |  +- io.netty:netty-codec-http:jar:4.1.72.Final:compile
[INFO] |  |     |  +- io.netty:netty-codec-http2:jar:4.1.72.Final:compile
[INFO] |  |     |  \- io.netty:netty-handler:jar:4.1.72.Final:compile
[INFO] |  |     |     \- io.netty:netty-tcnative-classes:jar:2.0.46.Final:compile
[INFO] |  |     +- io.netty:netty-codec-haproxy:jar:4.1.72.Final:compile
[INFO] |  |     |  +- io.netty:netty-buffer:jar:4.1.72.Final:compile
[INFO] |  |     |  \- io.netty:netty-transport:jar:4.1.72.Final:compile
[INFO] |  |     +- io.smallrye.reactive:smallrye-mutiny-vertx-core:jar:2.15.1:compile
[INFO] |  |     |  +- io.smallrye.reactive:smallrye-mutiny-vertx-runtime:jar:2.15.1:compile
[INFO] |  |     |  \- io.smallrye.reactive:vertx-mutiny-generator:jar:2.15.1:compile
[INFO] |  |     |     \- io.vertx:vertx-codegen:jar:4.2.2:compile
[INFO] |  |     \- io.smallrye:smallrye-fault-tolerance-vertx:jar:5.2.1:compile
[INFO] |  +- io.quarkus:quarkus-vertx-http:jar:2.5.4.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-security-runtime-spi:jar:2.5.4.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-vertx-http-dev-console-runtime-spi:jar:2.5.4.Final:compile
[INFO] |  |  +- io.quarkus.security:quarkus-security:jar:1.1.4.Final:compile
[INFO] |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-web:jar:2.15.1:compile
[INFO] |  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-web-common:jar:2.15.1:compile
[INFO] |  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-auth-common:jar:2.15.1:compile
[INFO] |  |  |  \- io.smallrye.reactive:smallrye-mutiny-vertx-bridge-common:jar:2.15.1:compile
[INFO] |  |  \- io.vertx:vertx-web:jar:4.2.2:compile
[INFO] |  |     +- io.vertx:vertx-web-common:jar:4.2.2:compile
[INFO] |  |     +- io.vertx:vertx-auth-common:jar:4.2.2:compile
[INFO] |  |     +- io.vertx:vertx-bridge-common:jar:4.2.2:compile
[INFO] |  |     \- io.vertx:vertx-core:jar:4.2.2:compile
[INFO] |  |        +- io.netty:netty-common:jar:4.1.72.Final:compile
[INFO] |  |        +- io.netty:netty-handler-proxy:jar:4.1.72.Final:compile
[INFO] |  |        |  \- io.netty:netty-codec-socks:jar:4.1.72.Final:compile
[INFO] |  |        +- io.netty:netty-resolver:jar:4.1.72.Final:compile
[INFO] |  |        \- io.netty:netty-resolver-dns:jar:4.1.72.Final:compile
[INFO] |  |           \- io.netty:netty-codec-dns:jar:4.1.72.Final:compile
[INFO] |  \- io.quarkus:quarkus-jsonp:jar:2.5.4.Final:compile
[INFO] |     \- org.glassfish:jakarta.json:jar:1.1.6:compile
[INFO] +- io.quarkus:quarkus-arc:jar:2.5.4.Final:compile
[INFO] |  +- io.quarkus.arc:arc:jar:2.5.4.Final:compile
[INFO] |  |  \- jakarta.transaction:jakarta.transaction-api:jar:1.3.3:compile
[INFO] |  \- org.eclipse.microprofile.context-propagation:microprofile-context-propagation-api:jar:1.2:compile
[INFO] +- io.quarkus:quarkus-junit5:jar:2.5.4.Final:test
[INFO] |  +- io.quarkus:quarkus-bootstrap-core:jar:2.5.4.Final:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-app-model:jar:2.5.4.Final:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-maven-resolver:jar:2.5.4.Final:test
[INFO] |  |  |  +- org.apache.maven:maven-embedder:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-settings:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-core:jar:3.8.1:test
[INFO] |  |  |  |  |  +- org.apache.maven:maven-artifact:jar:3.8.1:test
[INFO] |  |  |  |  |  \- org.codehaus.plexus:plexus-component-annotations:jar:2.1.0:test
[INFO] |  |  |  |  +- org.apache.maven:maven-plugin-api:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-model:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-model-builder:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-builder-support:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-api:jar:1.6.2:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-util:jar:1.6.2:test
[INFO] |  |  |  |  +- org.apache.maven.shared:maven-shared-utils:jar:3.3.3:test
[INFO] |  |  |  |  +- com.google.inject:guice:jar:no_aop:4.2.1:test
[INFO] |  |  |  |  |  \- com.google.guava:guava:jar:30.1.1-jre:test
[INFO] |  |  |  |  |     +- com.google.guava:failureaccess:jar:1.0.1:test
[INFO] |  |  |  |  |     \- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-utils:jar:3.2.1:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-classworlds:jar:2.6.0:test
[INFO] |  |  |  |  \- commons-cli:commons-cli:jar:1.4:test
[INFO] |  |  |  +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.4:test
[INFO] |  |  |  +- org.apache.maven:maven-settings-builder:jar:3.8.1:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-interpolation:jar:1.25:test
[INFO] |  |  |  |  \- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4:test
[INFO] |  |  |  |     \- org.sonatype.plexus:plexus-cipher:jar:1.4:test
[INFO] |  |  |  +- org.apache.maven:maven-resolver-provider:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven:maven-repository-metadata:jar:3.8.1:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-spi:jar:1.6.2:test
[INFO] |  |  |  |  \- org.apache.maven.resolver:maven-resolver-impl:jar:1.6.2:test
[INFO] |  |  |  +- org.apache.maven.resolver:maven-resolver-connector-basic:jar:1.6.2:test
[INFO] |  |  |  +- org.apache.maven.resolver:maven-resolver-transport-wagon:jar:1.6.2:test
[INFO] |  |  |  +- org.apache.maven.wagon:wagon-http:jar:3.4.3:test
[INFO] |  |  |  |  +- org.apache.maven.wagon:wagon-http-shared:jar:3.4.3:test
[INFO] |  |  |  |  |  \- org.jsoup:jsoup:jar:1.14.2:test
[INFO] |  |  |  |  \- org.apache.maven.wagon:wagon-provider-api:jar:3.4.3:test
[INFO] |  |  |  \- org.apache.maven.wagon:wagon-file:jar:3.4.3:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-gradle-resolver:jar:2.5.4.Final:test
[INFO] |  |  \- io.smallrye.common:smallrye-common-io:jar:1.8.0:compile
[INFO] |  +- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.4:test
[INFO] |  +- io.quarkus:quarkus-test-common:jar:2.5.4.Final:test
[INFO] |  |  +- io.quarkus:quarkus-core-deployment:jar:2.5.4.Final:test
[INFO] |  |  |  +- org.aesh:readline:jar:2.1:test
[INFO] |  |  |  |  \- org.fusesource.jansi:jansi:jar:1.18:test
[INFO] |  |  |  +- io.quarkus.gizmo:gizmo:jar:1.0.10.Final:test
[INFO] |  |  |  |  \- org.ow2.asm:asm-util:jar:9.2:test
[INFO] |  |  |  +- org.ow2.asm:asm:jar:9.2:test
[INFO] |  |  |  +- org.ow2.asm:asm-commons:jar:9.2:test
[INFO] |  |  |  |  +- org.ow2.asm:asm-tree:jar:9.2:test
[INFO] |  |  |  |  \- org.ow2.asm:asm-analysis:jar:9.2:test
[INFO] |  |  |  +- io.quarkus:quarkus-class-change-agent:jar:2.5.4.Final:test
[INFO] |  |  |  +- io.quarkus:quarkus-devtools-utilities:jar:2.5.4.Final:test
[INFO] |  |  |  +- io.quarkus:quarkus-builder:jar:2.5.4.Final:test
[INFO] |  |  |  \- org.junit.platform:junit-platform-launcher:jar:1.8.1:test
[INFO] |  |  +- io.quarkus:quarkus-jsonp-deployment:jar:2.5.4.Final:test
[INFO] |  |  +- org.jboss:jandex:jar:2.4.1.Final:test
[INFO] |  |  \- org.jboss.logging:commons-logging-jboss-logging:jar:1.0.0.Final:compile
[INFO] |  +- org.junit.jupiter:junit-jupiter:jar:5.8.1:test
[INFO] |  |  +- org.junit.jupiter:junit-jupiter-api:jar:5.8.1:test
[INFO] |  |  |  +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] |  |  |  +- org.junit.platform:junit-platform-commons:jar:1.8.1:test
[INFO] |  |  |  \- org.apiguardian:apiguardian-api:jar:1.1.2:test
[INFO] |  |  +- org.junit.jupiter:junit-jupiter-params:jar:5.8.1:test
[INFO] |  |  \- org.junit.jupiter:junit-jupiter-engine:jar:5.8.1:test
[INFO] |  |     \- org.junit.platform:junit-platform-engine:jar:1.8.1:test
[INFO] |  \- com.thoughtworks.xstream:xstream:jar:1.4.18:test
[INFO] |     \- io.github.x-stream:mxparser:jar:1.2.2:test
[INFO] |        \- xmlpull:xmlpull:jar:1.1.3.1:test
[INFO] \- io.rest-assured:rest-assured:jar:4.4.0:test
[INFO]    +- org.codehaus.groovy:groovy:jar:3.0.8:test
[INFO]    +- org.codehaus.groovy:groovy-xml:jar:3.0.8:test
[INFO]    +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[INFO]    |  +- org.apache.httpcomponents:httpcore:jar:4.4.14:compile
[INFO]    |  \- commons-codec:commons-codec:jar:1.15:compile
[INFO]    +- org.apache.httpcomponents:httpmime:jar:4.5.13:test
[INFO]    +- org.hamcrest:hamcrest:jar:2.1:test
[INFO]    +- org.ccil.cowan.tagsoup:tagsoup:jar:1.2.1:test
[INFO]    +- io.rest-assured:json-path:jar:4.4.0:test
[INFO]    |  +- org.codehaus.groovy:groovy-json:jar:3.0.8:test
[INFO]    |  \- io.rest-assured:rest-assured-common:jar:4.4.0:test
[INFO]    \- io.rest-assured:xml-path:jar:4.4.0:test
[INFO]       +- org.apache.commons:commons-lang3:jar:3.12.0:test
[INFO]       +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3:test
[INFO]       \- com.sun.xml.bind:jaxb-impl:jar:2.3.3:test

output of uname -a

Linux pop-os 5.15.5-76051505-generic #202111250933~1638201579~21.04~09f1aa7-Ubuntu SMP Tue Nov 30 02: x86_64 x86_64 x86_64 GNU/Linux

output of java -version

openjdk version "14.0.2" 2020-07-14
OpenJDK Runtime Environment (build 14.0.2+12-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 14.0.2+12-Ubuntu-120.04, mixed mode, sharing)

output of ./mvnw --version

Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: /home/b/.m2/wrapper/dists/apache-maven-3.8.1-bin/2l5mhf2pq2clrde7f7qp1rdt5m/apache-maven-3.8.1
Java version: 14.0.2, vendor: Private Build, runtime: /usr/lib/jvm/java-14-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.15.5-76051505-generic", arch: "amd64", family: "unix"

exclusion did not work

I also tried to exclude quarkus-resteasy, but it didn't work.

  <dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-resteasy-mutiny</artifactId>
    <exclusions>
      <exclusion>
        <artifactId>io.quarkus</artifactId>
        <groupId>quarkus-resteasy</groupId>
      </exclusion>
    </exclusions>
  </dependency>
mklueh commented 2 years ago

Same here after including the reactive RESTEasy dependencies together with Mutiny.

Edit: according to the dependency tree, the RESTEasy dependency comes with Mutiny:

+--- io.quarkus:quarkus-resteasy-mutiny -> 2.6.1.Final
|    +--- io.quarkus:quarkus-core:2.6.1.Final (*)
|    +--- io.quarkus:quarkus-arc:2.6.1.Final (*)
|    +--- io.quarkus:quarkus-resteasy:2.6.1.Final
|    |    +--- io.quarkus:quarkus-vertx-http:2.6.1.Final (*)
|    |    \--- io.quarkus:quarkus-resteasy-server-common:2.6.1.Final

Excluding io.quarkus:quarkus-resteasy does work in my case

  implementation('io.quarkus:quarkus-resteasy-mutiny') {
      exclude group: 'io.quarkus', module: 'quarkus-resteasy'
  }
gsmet commented 2 years ago

@geoand I think we will need a solution for that if we want to move to RESTEasy Reactive as the default REST layer.

I'm not sure how we could fix it exactly as I suppose the Keycloak Admin Client is currently depending on RESTEasy internals.

geoand commented 2 years ago

Yes, that's exactly the problem...

It probably won't be an easy fix, but definitely a necessary one

geoand commented 2 years ago

@sberyozkin @pedroigor we really need a reactive version of quarkus-keycloak-admin-client. What does that client do in practice? How hard would it be to uncouple it from RESTEasy?

stefanwendelmann commented 2 years ago

Is there any efforts on this? I am building a fully reactive API and need to use the keycloak-admin-client.

sberyozkin commented 2 years ago

Hi All, please vote for https://github.com/keycloak/keycloak/issues/9539

michalszynkiewicz commented 2 years ago

@geoand can this be closed?

gsmet commented 2 years ago

No, it's still not in. Should be in soon.

geoand commented 2 years ago

https://github.com/quarkusio/quarkus/pull/24300 will likely be how we go about this