Skip to content

GraphQL Typesafe client with sources in a dependency #44550

Closed
@jmini

Description

When having the typesafe client sources (an interface with the @GraphQLClientApi annotation and model classes) inside my quarkus project everything works great. I can inject the client like this:

@Inject
WorkitemClientApi api;

See docs: https://quarkus.io/guides/smallrye-graphql-client


Example project for calling the GitLab GraphQL endpoint:
quarkus-graphql-client 
(on branch main commit 9b2fcec)


Now I would like to put my sources in a dedicated library:

Example project: gitlab-workitem-graphql-client



Can be loaded with jitpack as:



com.github.unblu:gitlab-workitem-graphql-client:0dde568aa4

Gradle config of the quarkus project

repositories {
    maven {
        url 'https://jitpack.io'
        content {
            includeGroup 'com.github.unblu'
        }
    }
    mavenCentral()
    // mavenLocal()
}

dependencies {
    implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
    implementation 'io.quarkus:quarkus-rest'
    implementation 'io.quarkus:quarkus-smallrye-graphql-client'
    implementation 'io.quarkus:quarkus-arc'
    implementation 'com.github.unblu:gitlab-workitem-graphql-client:0dde568aa43f45079cc646b23fed8c807fe7fa1a'
    testImplementation 'io.quarkus:quarkus-junit5'
    testImplementation 'io.rest-assured:rest-assured'
}

Maven config of the quarkus project

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.acme</groupId>
    <artifactId>quarkus-graphql-client-maven</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <properties>
        <compiler-plugin.version>3.13.0</compiler-plugin.version>
        <maven.compiler.release>21</maven.compiler.release>
        <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>3.16.3</quarkus.platform.version>
        <skipITs>true</skipITs>
        <surefire-plugin.version>3.5.0</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>

    <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>com.github.unblu</groupId>
            <artifactId>gitlab-workitem-graphql-client</artifactId>
            <version>0dde568aa43f45079cc646b23fed8c807fe7fa1a</version>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-rest</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-smallrye-graphql-client</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>
                            <goal>native-image-agent</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${compiler-plugin.version}</version>
                <configuration>
                    <parameters>true</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>
            <plugin>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>${surefire-plugin.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
                <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>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>native</id>
            <activation>
                <property>
                    <name>native</name>
                </property>
            </activation>
            <properties>
                <skipITs>false</skipITs>
                <quarkus.native.enabled>true</quarkus.native.enabled>
            </properties>
        </profile>
    </profiles>
</project>




Test of the typesafe client outside of quarkus in a simple Jbang script

///usr/bin/env jbang "$0" "$@" ; exit $?

//DEPS https://github.com/unblu/gitlab-workitem-graphql-client/commit/0dde568aa43f45079cc646b23fed8c807fe7fa1a
//DEPS io.smallrye:smallrye-graphql-client-implementation-vertx:2.11.0
//JAVA 11

import static java.lang.System.*;

import graphql.gitlab.api.WorkitemClientApi;
import graphql.gitlab.model.Group;
import graphql.gitlab.model.Project;
import io.smallrye.graphql.client.typesafe.api.TypesafeGraphQLClientBuilder;

public class run {

    public static void main(String... args) {
        out.println("Start");
        var api = createApi();
        Project response = api.project("tech-marketing/demos/gitlab-agile-demo/initech/music-store/parent-portal", true, null);
        out.println(response);
        System.exit(0);
    }

    private static WorkitemClientApi createApi() {
        return TypesafeGraphQLClientBuilder.newBuilder()
                .endpoint("https://gitlab.com/api/graphql")
                .build(WorkitemClientApi.class);
    }
}


But when I try to include this library in my quarkus project, It fail during startup.



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.arc.deployment.ArcProcessor#validate threw an exception: jakarta.enterprise.inject.spi.DeploymentException: jakarta.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type graphql.gitlab.api.WorkitemClientApi and qualifiers [@Default]
        - injection target: gitlab.GreetingResource#api
        - declared on CLASS bean [types=[java.lang.Object, gitlab.GreetingResource], qualifiers=[@Default, @Any], target=gitlab.GreetingResource]


Example project for calling the GitLab GraphQL endpoint:
quarkus-graphql-client 
(on branch external-library commit 1254ebc)

Complete Quarkus App logs

2024-11-17 10:50:00,451 DEBUG [io.sma.gra.cli.mod.ClientModelBuilder] (build-25) [graphql.gitlab.api.WorkitemClientApi] – Query created: mutation awardEmojiAdd($arg0: AwardEmojiAddInput!) { awardEmojiAdd(input: $arg0) {awardEmoji {name unicode unicodeVersion} errors} }
2024-11-17 10:50:00,455 DEBUG [io.sma.gra.cli.mod.ClientModelBuilder] (build-25) [graphql.gitlab.api.WorkitemClientApi] – Query created: mutation createNote($arg0: CreateNoteInput!) { createNote(input: $arg0) {errors note {author {id username} awardEmoji {nodes {name unicode unicodeVersion}} body id}} }
2024-11-17 10:50:00,457 DEBUG [io.sma.gra.cli.mod.ClientModelBuilder] (build-25) [graphql.gitlab.api.WorkitemClientApi] – Query created: mutation destroyNote($arg0: DestroyNoteInput!) { destroyNote(input: $arg0) {errors note {author {id username} awardEmoji {nodes {name unicode unicodeVersion}} body id}} }
2024-11-17 10:50:00,500 DEBUG [io.sma.gra.cli.mod.ClientModelBuilder] (build-25) [graphql.gitlab.api.WorkitemClientApi] – Query created: mutation workItemRemoveLinkedItems($arg0: WorkItemRemoveLinkedItemsInput!) { workItemRemoveLinkedItems(input: $arg0) {errors message workItem {archived closedAt confidential createdAt id iid lockVersion namespace {fullPath id visibility} reference state title updatedAt webUrl widgets{__typename ... on WorkItemWidgetAssignees {assignees {nodes {id username}} type} ... on WorkItemWidgetAwardEmoji {type} ... on WorkItemWidgetColor {type} ... on WorkItemWidgetCrmContacts {type} ... on WorkItemWidgetCurrentUserTodos {type} ... on WorkItemWidgetDescription {description} ... on WorkItemWidgetDesigns {type} ... on WorkItemWidgetDevelopment {type} ... on WorkItemWidgetEmailParticipants {type} ... on WorkItemWidgetHealthStatus {type} ... on WorkItemWidgetHierarchy {ancestors {count nodes {archived confidential createdAt id iid namespace {fullPath id visibility} reference state title webUrl workItemType {id name}}} children {count nodes {archived confidential createdAt id iid namespace {fullPath id visibility} reference state title webUrl workItemType {id name}}} parent {archived confidential createdAt id iid namespace {fullPath id visibility} reference state title webUrl workItemType {id name}}} ... on WorkItemWidgetIteration {type} ... on WorkItemWidgetLabels {labels {count nodes {color description id textColor title} pageInfo {endCursor hasNextPage startCursor}} type} ... on WorkItemWidgetLinkedItems {linkedItems {nodes {linkCreatedAt linkId linkType linkUpdatedAt workItem {archived confidential createdAt id iid namespace {fullPath id visibility} reference state title webUrl workItemType {id name}}}} type} ... on WorkItemWidgetMilestone {type} ... on WorkItemWidgetNotes {discussions {nodes {id notes {nodes {author {id username} awardEmoji {nodes {name unicode unicodeVersion}} body id}}}} type} ... on WorkItemWidgetNotifications {type} ... on WorkItemWidgetParticipants {type} ... on WorkItemWidgetRolledupDates {type} ... on WorkItemWidgetStartAndDueDate {dueDate startDate type} ... on WorkItemWidgetStatus {status} ... on WorkItemWidgetTimeTracking {type} ... on WorkItemWidgetWeight {type}} workItemType {id name}}} }
2024-11-17 10:50:00,516 DEBUG [io.sma.gra.cli.mod.ClientModelBuilder] (build-25) [graphql.gitlab.api.WorkitemClientApi] – Query created: mutation workItemUpdate($arg0: WorkItemUpdateInput!) { workItemUpdate(input: $arg0) {errors workItem {archived closedAt confidential createdAt id iid lockVersion namespace {fullPath id visibility} reference state title updatedAt webUrl widgets{__typename ... on WorkItemWidgetAssignees {assignees {nodes {id username}} type} ... on WorkItemWidgetAwardEmoji {type} ... on WorkItemWidgetColor {type} ... on WorkItemWidgetCrmContacts {type} ... on WorkItemWidgetCurrentUserTodos {type} ... on WorkItemWidgetDescription {description} ... on WorkItemWidgetDesigns {type} ... on WorkItemWidgetDevelopment {type} ... on WorkItemWidgetEmailParticipants {type} ... on WorkItemWidgetHealthStatus {type} ... on WorkItemWidgetHierarchy {ancestors {count nodes {archived confidential createdAt id iid namespace {fullPath id visibility} reference state title webUrl workItemType {id name}}} children {count nodes {archived confidential createdAt id iid namespace {fullPath id visibility} reference state title webUrl workItemType {id name}}} parent {archived confidential createdAt id iid namespace {fullPath id visibility} reference state title webUrl workItemType {id name}}} ... on WorkItemWidgetIteration {type} ... on WorkItemWidgetLabels {labels {count nodes {color description id textColor title} pageInfo {endCursor hasNextPage startCursor}} type} ... on WorkItemWidgetLinkedItems {linkedItems {nodes {linkCreatedAt linkId linkType linkUpdatedAt workItem {archived confidential createdAt id iid namespace {fullPath id visibility} reference state title webUrl workItemType {id name}}}} type} ... on WorkItemWidgetMilestone {type} ... on WorkItemWidgetNotes {discussions {nodes {id notes {nodes {author {id username} awardEmoji {nodes {name unicode unicodeVersion}} body id}}}} type} ... on WorkItemWidgetNotifications {type} ... on WorkItemWidgetParticipants {type} ... on WorkItemWidgetRolledupDates {type} ... on WorkItemWidgetStartAndDueDate {dueDate startDate type} ... on WorkItemWidgetStatus {status} ... on WorkItemWidgetTimeTracking {type} ... on WorkItemWidgetWeight {type}} workItemType {id name}}} }
2024-11-17 10:50:00,522 DEBUG [io.sma.gra.cli.mod.ClientModelBuilder] (build-25) [graphql.gitlab.api.WorkitemClientApi] – Query created: query workItemsByReference($arg0: ID, $arg1: [String!]!, $arg2: NotesFilterType) { workItemsByReference(contextNamespacePath: $arg0, refs: $arg1) {count nodes {archived closedAt confidential createdAt id iid lockVersion namespace {fullPath id visibility} reference state title updatedAt webUrl widgets{__typename ... on WorkItemWidgetAssignees {assignees {nodes {id username}} type} ... on WorkItemWidgetAwardEmoji {type} ... on WorkItemWidgetColor {type} ... on WorkItemWidgetCrmContacts {type} ... on WorkItemWidgetCurrentUserTodos {type} ... on WorkItemWidgetDescription {description} ... on WorkItemWidgetDesigns {type} ... on WorkItemWidgetDevelopment {type} ... on WorkItemWidgetEmailParticipants {type} ... on WorkItemWidgetHealthStatus {type} ... on WorkItemWidgetHierarchy {ancestors {count nodes {archived confidential createdAt id iid namespace {fullPath id visibility} reference state title webUrl workItemType {id name}}} children {count nodes {archived confidential createdAt id iid namespace {fullPath id visibility} reference state title webUrl workItemType {id name}}} parent {archived confidential createdAt id iid namespace {fullPath id visibility} reference state title webUrl workItemType {id name}}} ... on WorkItemWidgetIteration {type} ... on WorkItemWidgetLabels {labels {count nodes {color description id textColor title} pageInfo {endCursor hasNextPage startCursor}} type} ... on WorkItemWidgetLinkedItems {linkedItems {nodes {linkCreatedAt linkId linkType linkUpdatedAt workItem {archived confidential createdAt id iid namespace {fullPath id visibility} reference state title webUrl workItemType {id name}}}} type} ... on WorkItemWidgetMilestone {type} ... on WorkItemWidgetNotes {discussions(filter: $arg2) {nodes {id notes {nodes {author {id username} awardEmoji {nodes {name unicode unicodeVersion}} body id}}}} type} ... on WorkItemWidgetNotifications {type} ... on WorkItemWidgetParticipants {type} ... on WorkItemWidgetRolledupDates {type} ... on WorkItemWidgetStartAndDueDate {dueDate startDate type} ... on WorkItemWidgetStatus {status} ... on WorkItemWidgetTimeTracking {type} ... on WorkItemWidgetWeight {type}} workItemType {id name}}} }
     2024-11-17 10:50:00,713 INFO  [io.qua.dep.dev.IsolatedDevModeMain] (main) Attempting to start live reload endpoint to recover from previous Quarkus startup failure
<====2024-11-17 10:50:01,118 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.arc.deployment.ArcProcessor#validate threw an exception: jakarta.enterprise.inject.spi.DeploymentException: jakarta.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type graphql.gitlab.api.WorkitemClientApi and qualifiers [@Default]
        - injection target: gitlab.GreetingResource#api
        - declared on CLASS bean [types=[java.lang.Object, gitlab.GreetingResource], qualifiers=[@Default, @Any], target=gitlab.GreetingResource]
        at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1576)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:338)
        at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:178)
        at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:492)
        at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733)
        at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:856)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:256)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2675)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2654)
        at org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1627)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1594)
        at java.base/java.lang.Thread.run(Thread.java:1583)
        at org.jboss.threads.JBossThread.run(JBossThread.java:499)
Caused by: jakarta.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type graphql.gitlab.api.WorkitemClientApi and qualifiers [@Default]
        - injection target: gitlab.GreetingResource#api
        - declared on CLASS bean [types=[java.lang.Object, gitlab.GreetingResource], qualifiers=[@Default, @Any], target=gitlab.GreetingResource]
        at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:546)
        at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:698)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:323)
        ... 12 more

        at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:354)
        at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:272)
        at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:62)
        at io.quarkus.deployment.dev.IsolatedDevModeMain.firstStart(IsolatedDevModeMain.java:89)
        at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:428)
        at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:55)
        at io.quarkus.bootstrap.app.CuratedApplication.runInCl(CuratedApplication.java:138)
        at io.quarkus.bootstrap.app.CuratedApplication.runInAugmentClassLoader(CuratedApplication.java:93)
        at io.quarkus.deployment.dev.DevModeMain.start(DevModeMain.java:131)
        at io.quarkus.deployment.dev.DevModeMain.main(DevModeMain.java:62)
Caused by: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
        [error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: jakarta.enterprise.inject.spi.DeploymentException: jakarta.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type graphql.gitlab.api.WorkitemClientApi and qualifiers [@Default]
        - injection target: gitlab.GreetingResource#api
        - declared on CLASS bean [types=[java.lang.Object, gitlab.GreetingResource], qualifiers=[@Default, @Any], target=gitlab.GreetingResource]
        at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1576)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:338)
        at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:178)
        at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:492)
        at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733)
        at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:856)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:256)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2675)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2654)
        at org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1627)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1594)
        at java.base/java.lang.Thread.run(Thread.java:1583)
        at org.jboss.threads.JBossThread.run(JBossThread.java:499)
Caused by: jakarta.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type graphql.gitlab.api.WorkitemClientApi and qualifiers [@Default]
        - injection target: gitlab.GreetingResource#api
        - declared on CLASS bean [types=[java.lang.Object, gitlab.GreetingResource], qualifiers=[@Default, @Any], target=gitlab.GreetingResource]
        at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:546)
        at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:698)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:323)
        ... 12 more

        at io.quarkus.builder.Execution.run(Execution.java:124)
        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:350)
        ... 9 more
Caused by: jakarta.enterprise.inject.spi.DeploymentException: jakarta.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type graphql.gitlab.api.WorkitemClientApi and qualifiers [@Default]
        - injection target: gitlab.GreetingResource#api
        - declared on CLASS bean [types=[java.lang.Object, gitlab.GreetingResource], qualifiers=[@Default, @Any], target=gitlab.GreetingResource]
        at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:1576)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:338)
        at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:178)
        at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:492)
        at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733)
        at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:856)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:256)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2675)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2654)
        at org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1627)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1594)
        at java.base/java.lang.Thread.run(Thread.java:1583)
        at org.jboss.threads.JBossThread.run(JBossThread.java:499)
Caused by: jakarta.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type graphql.gitlab.api.WorkitemClientApi and qualifiers [@Default]
        - injection target: gitlab.GreetingResource#api
        - declared on CLASS bean [types=[java.lang.Object, gitlab.GreetingResource], qualifiers=[@Default, @Any], target=gitlab.GreetingResource]
        at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:546)
        at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:698)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:323)
        ... 12 more

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions