Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
kvnb93 opened this issue Oct 1, 2021 · 21 comments

Comments

@kvnb93
Copy link

kvnb93 commented Oct 1, 2021

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] ------------------------------------------------------------------------
@kvnb93 kvnb93 added the kind/bug Something isn't working label Oct 1, 2021
@quarkus-bot quarkus-bot bot added area/jackson Issues related to Jackson (JSON library) area/keycloak area/rest-client labels Oct 1, 2021
@quarkus-bot
Copy link

quarkus-bot bot commented Oct 1, 2021

@geoand
Copy link
Contributor

geoand commented Oct 1, 2021

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

@sberyozkin
Copy link
Member

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

@sberyozkin
Copy link
Member

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

@geoand
Copy link
Contributor

geoand commented Oct 4, 2021

Thanks for the information.

How do we plan to tackle this?

@michalszynkiewicz
Copy link
Member

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
Copy link
Member

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

@kvnb93
Copy link
Author

kvnb93 commented Nov 26, 2021

Any news on this @geoand @sberyozkin?

@benhalasi
Copy link

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
Copy link
Contributor

geoand commented Dec 22, 2021

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
Copy link
Contributor

geoand commented Dec 22, 2021

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

What do you mean exactly?

@benhalasi
Copy link

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
Copy link
Contributor

mklueh commented Dec 27, 2021

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
Copy link
Member

gsmet commented Dec 30, 2021

@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
Copy link
Contributor

geoand commented Jan 1, 2022

Yes, that's exactly the problem...

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

@geoand
Copy link
Contributor

geoand commented Jan 3, 2022

@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
Copy link
Contributor

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

@sberyozkin
Copy link
Member

Hi All, please vote for keycloak/keycloak#9539

@geoand geoand self-assigned this Mar 14, 2022
geoand added a commit to geoand/quarkus that referenced this issue Mar 14, 2022
This is pretty much a straight copy of the existing Keycloak code
that removes various things that are not supported by Quarkus

Fixes: quarkusio#20505
geoand added a commit to geoand/quarkus that referenced this issue Mar 14, 2022
This is pretty much a straight copy of the existing Keycloak code
that removes various things that are not supported by Quarkus.

Furthermore, the base package was changed because there are cases
where the upstream Keycloak client still needs to be used (for example
in a QuarkusTestResourceLifecycleManager which runs before the Quarkus
application and therefore cannot use any Quarkus infrastructure)

Fixes: quarkusio#20505
@geoand geoand removed the area/jackson Issues related to Jackson (JSON library) label Mar 14, 2022
geoand added a commit to geoand/quarkus that referenced this issue Mar 14, 2022
This is pretty much a straight copy of the existing Keycloak code
that removes various things that are not supported by Quarkus.

Furthermore, the base package was changed because there are cases
where the upstream Keycloak client still needs to be used (for example
in a QuarkusTestResourceLifecycleManager which runs before the Quarkus
application and therefore cannot use any Quarkus infrastructure)

Fixes: quarkusio#20505
@michalszynkiewicz
Copy link
Member

@geoand can this be closed?

@gsmet
Copy link
Member

gsmet commented Mar 21, 2022

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

@geoand
Copy link
Contributor

geoand commented Mar 21, 2022

#24300 will likely be how we go about this

@gsmet gsmet closed this as completed in 8f259e5 Mar 28, 2022
gsmet added a commit that referenced this issue Mar 28, 2022
Add first version of Keycloak admin client based on Reactive REST Client
Repository owner moved this from Todo to Done in Quarkus Roadmap/Planning Mar 28, 2022
gsmet pushed a commit to gsmet/quarkus that referenced this issue Mar 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

9 participants