Closed kvnb93 closed 2 years ago
/cc @geoand, @gsmet, @michalszynkiewicz, @pedroigor, @sberyozkin
@sberyozkin did we not have a replacement for this one?
Hi @geoand No, I don't see how it can happen as it is a Keycloak managed library which uses the classic
RestEasy
The same would be the case for quarkus-keycloak-authorization
Thanks for the information.
How do we plan to tackle this?
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?
I'd be happy to help with ^, @sberyozkin do you know who in the keycloak team I could contact about it?
Any news on this @geoand @sberyozkin?
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?
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 :)
The same issue is present with quarkus-resteasy-mutiny when following mongodb-panache guide
What do you mean exactly?
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)
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
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
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)
./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"
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>
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'
}
@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.
Yes, that's exactly the problem...
It probably won't be an easy fix, but definitely a necessary one
@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?
Is there any efforts on this? I am building a fully reactive API and need to use the keycloak-admin-client.
Hi All, please vote for https://github.com/keycloak/keycloak/issues/9539
@geoand can this be closed?
No, it's still not in. Should be in soon.
https://github.com/quarkusio/quarkus/pull/24300 will likely be how we go about this
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:Expected behavior
I can use
rest-client-reactive-jackson
together withquarkus-keycloak-admin-client
in a single project. Therefore, I would expectquarkus-keycloak-admin-client
to recognize that there is a rest client already present in the project and use that (be itquarkus-rest-client-reactive
orquarkus-rest-client
).Actual behavior
When starting the application, I get the following exception:
How to Reproduce?
Steps to reproduce the behavior:
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"
cd rest-client-reactive-quickstart
./mvnw quarkus:dev
Output of
uname -a
orver
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
orgradlew --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: