graphql-java-generator / graphql-gradle-plugin-project

graphql-gradle-plugin is a Gradle Plugin for GraphQL, based on graphql-java. It accelerates the development for both the client and the server, by generating the Java code. It allows a quicker development when in contract-first approach, by avoiding to code the boilerplate code.
https://graphql-maven-plugin-project.graphql-java-generator.com/
MIT License
54 stars 8 forks source link

NOT working with spring 6(spring boot 3) #16

Closed Caromeen closed 1 year ago

Caromeen commented 1 year ago

Throw error

org/springframework/core/NestedIOException

etienne-sf commented 1 year ago

Yes,

The versions 1.x are not compatible with spring boot 3. And they have not been tested with spring framework 6.

But ...

The 2.x versions will be compatible with both.

I released yesterday the 2.0RC1 (release candidate) for the maven plug-in.
I'm working on the gradle version to deliver the 2.0RC1 very soon for gradle also.

Étienne

br3t3s commented 1 year ago

It would be nice if gradle plugin will be released. Lack of gradle plugin blocks migration to springboot 3 in my project.

etienne-sf commented 1 year ago

There was more work than expected. The 2.0RC1 is now released, and is compatible with Spring Boot 3

Etienne

xmlking commented 1 year ago

cannot find gradle 2.0RC1

https://plugins.gradle.org/plugin/com.graphql_java_generator.graphql-gradle-plugin still show Version 1.18.11 (latest)

* Exception is:
org.gradle.api.plugins.UnknownPluginException: Plugin [id: 'com.graphql_java_generator.graphql-gradle-plugin', version: '2.0RC1'] was not found in any of the following sources:

- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (could not resolve plugin artifact 'com.graphql_java_generator.graphql-gradle-plugin:com.graphql_java_generator.graphql-gradle-plugin.gradle.plugin:2.0RC1')
  Searched in the following repositories:
    maven(https://repo.spring.io/release)
    maven2(https://repo.spring.io/milestone)
    MavenLocal(file:/Users/schinth/.m2/repository/)
    MavenRepo
    Gradle Central Plugin Repository
    at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolveToFoundResult(DefaultPluginRequestApplicator.java:237)
    at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.lambda$resolvePluginRequests$3(DefaultPluginRequestApplicator.java:167)
    at org.gradle.util.internal.CollectionUtils.collect(CollectionUtils.java:212)
    at org.gradle.util.internal.CollectionUtils.collect(CollectionUtils.java:206)
    at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolvePluginRequests(DefaultPluginRequestApplicator.java:165)
    at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins(DefaultPluginRequestApplicator.java:100)
    at org.gradle.kotlin.dsl.provider.PluginRequestsHandler.handle(PluginRequestsHandler.kt:48)
    at org.gradle.kotlin.dsl.provider.StandardKotlinScriptEvaluator$InterpreterHost.applyPluginsTo(KotlinScriptEvaluator.kt:212)
    at org.gradle.kotlin.dsl.execution.Interpreter$ProgramHost.applyPluginsTo(Interpreter.kt:382)
    at Program.execute(Unknown Source)
    at org.gradle.kotlin.dsl.execution.Interpreter$ProgramHost.eval(Interpreter.kt:512)
    at org.gradle.kotlin.dsl.execution.Interpreter.eval(Interpreter.kt:210)
    at org.gradle.kotlin.dsl.provider.StandardKotlinScriptEvaluator.evaluate(KotlinScriptEvaluator.kt:119)
    at org.gradle.kotlin.dsl.provider.KotlinScriptPluginFactory$create$1.invoke(KotlinScriptPluginFactory.kt:51)
    at org.gradle.kotlin.dsl.provider.KotlinScriptPluginFactory$create$1.invoke(KotlinScriptPluginFactory.kt:48)
    at org.gradle.kotlin.dsl.provider.KotlinScriptPlugin.apply(KotlinScriptPlugin.kt:35)
    at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:65)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
    at org.gradle.configuration.BuildOperationScriptPlugin.lambda$apply$0(BuildOperationScriptPlugin.java:62)
    at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:44)
    at org.gradle.configuration.BuildOperationScriptPlugin.apply(BuildOperationScriptPlugin.java:62)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$applyToMutableState$1(DefaultProjectStateRegistry.java:395)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:413)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.applyToMutableState(DefaultProjectStateRegistry.java:394)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:46)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:27)
    at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:35)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.lambda$run$0(LifecycleProjectEvaluator.java:109)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$applyToMutableState$1(DefaultProjectStateRegistry.java:395)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$fromMutableState$2(DefaultProjectStateRegistry.java:418)
    at org.gradle.internal.work.DefaultWorkerLeaseService.withReplacedLocks(DefaultWorkerLeaseService.java:345)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:418)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.applyToMutableState(DefaultProjectStateRegistry.java:394)
    at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.run(LifecycleProjectEvaluator.java:100)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:72)
    at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:779)
    at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:156)
    at org.gradle.api.internal.project.ProjectLifecycleController.lambda$ensureSelfConfigured$2(ProjectLifecycleController.java:84)
    at org.gradle.internal.model.StateTransitionController.lambda$doTransition$14(StateTransitionController.java:255)
    at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:266)
    at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:254)
    at org.gradle.internal.model.StateTransitionController.lambda$maybeTransitionIfNotCurrentlyTransitioning$10(StateTransitionController.java:199)
    at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:34)
    at org.gradle.internal.model.StateTransitionController.maybeTransitionIfNotCurrentlyTransitioning(StateTransitionController.java:195)
    at org.gradle.api.internal.project.ProjectLifecycleController.ensureSelfConfigured(ProjectLifecycleController.java:84)
    at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.ensureConfigured(DefaultProjectStateRegistry.java:369)
    at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:33)
    at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:49)
    at org.gradle.configuration.DefaultProjectsPreparer.prepareProjects(DefaultProjectsPreparer.java:42)
    at org.gradle.configuration.BuildTreePreparingProjectsPreparer.prepareProjects(BuildTreePreparingProjectsPreparer.java:65)
    at org.gradle.configuration.BuildOperationFiringProjectsPreparer$ConfigureBuild.run(BuildOperationFiringProjectsPreparer.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
    at org.gradle.configuration.BuildOperationFiringProjectsPreparer.prepareProjects(BuildOperationFiringProjectsPreparer.java:40)
    at org.gradle.initialization.VintageBuildModelController.lambda$prepareProjects$2(VintageBuildModelController.java:84)
    at org.gradle.internal.model.StateTransitionController.lambda$doTransition$14(StateTransitionController.java:255)
    at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:266)
    at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:254)
    at org.gradle.internal.model.StateTransitionController.lambda$transitionIfNotPreviously$11(StateTransitionController.java:213)
    at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:34)
    at org.gradle.internal.model.StateTransitionController.transitionIfNotPreviously(StateTransitionController.java:209)
    at org.gradle.initialization.VintageBuildModelController.prepareProjects(VintageBuildModelController.java:84)
    at org.gradle.initialization.VintageBuildModelController.getConfiguredModel(VintageBuildModelController.java:64)
    at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$withProjectsConfigured$1(DefaultBuildLifecycleController.java:122)
    at org.gradle.internal.model.StateTransitionController.lambda$notInState$3(StateTransitionController.java:132)
    at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)
    at org.gradle.internal.model.StateTransitionController.notInState(StateTransitionController.java:128)
    at org.gradle.internal.build.DefaultBuildLifecycleController.withProjectsConfigured(DefaultBuildLifecycleController.java:122)
    at org.gradle.internal.build.DefaultBuildToolingModelController.locateBuilderForTarget(DefaultBuildToolingModelController.java:57)
    at org.gradle.internal.buildtree.DefaultBuildTreeModelCreator$DefaultBuildTreeModelController.lambda$locateBuilderForTarget$0(DefaultBuildTreeModelCreator.java:73)
    at org.gradle.internal.build.DefaultBuildLifecycleController.withToolingModels(DefaultBuildLifecycleController.java:215)
    at org.gradle.internal.build.AbstractBuildState.withToolingModels(AbstractBuildState.java:140)
    at org.gradle.internal.buildtree.DefaultBuildTreeModelCreator$DefaultBuildTreeModelController.locateBuilderForTarget(DefaultBuildTreeModelCreator.java:73)
    at org.gradle.internal.buildtree.DefaultBuildTreeModelCreator$DefaultBuildTreeModelController.locateBuilderForDefaultTarget(DefaultBuildTreeModelCreator.java:68)
    at org.gradle.tooling.internal.provider.runner.DefaultBuildController.getTarget(DefaultBuildController.java:157)
    at org.gradle.tooling.internal.provider.runner.DefaultBuildController.getModel(DefaultBuildController.java:101)
    at org.gradle.tooling.internal.consumer.connection.ParameterAwareBuildControllerAdapter.getModel(ParameterAwareBuildControllerAdapter.java:39)
    at org.gradle.tooling.internal.consumer.connection.UnparameterizedBuildController.getModel(UnparameterizedBuildController.java:113)
    at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.getModel(NestedActionAwareBuildControllerAdapter.java:31)
    at org.gradle.tooling.internal.consumer.connection.UnparameterizedBuildController.findModel(UnparameterizedBuildController.java:97)
    at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.findModel(NestedActionAwareBuildControllerAdapter.java:31)
    at org.gradle.tooling.internal.consumer.connection.UnparameterizedBuildController.findModel(UnparameterizedBuildController.java:81)
    at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.findModel(NestedActionAwareBuildControllerAdapter.java:31)
    at org.gradle.tooling.internal.consumer.connection.UnparameterizedBuildController.findModel(UnparameterizedBuildController.java:66)
    at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.findModel(NestedActionAwareBuildControllerAdapter.java:31)
    at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:126)
    at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:43)
    at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.execute(InternalBuildActionAdapter.java:64)
    at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionAdapter.runAction(AbstractClientProvidedBuildActionRunner.java:131)
    at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionAdapter.beforeTasks(AbstractClientProvidedBuildActionRunner.java:99)
    at org.gradle.internal.buildtree.DefaultBuildTreeModelCreator.beforeTasks(DefaultBuildTreeModelCreator.java:52)
    at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$fromBuildModel$2(DefaultBuildTreeLifecycleController.java:74)
    at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$runBuild$4(DefaultBuildTreeLifecycleController.java:98)
    at org.gradle.internal.model.StateTransitionController.lambda$transition$6(StateTransitionController.java:169)
    at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:266)
    at org.gradle.internal.model.StateTransitionController.lambda$transition$7(StateTransitionController.java:169)
    at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)
    at org.gradle.internal.model.StateTransitionController.transition(StateTransitionController.java:169)
    at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild(DefaultBuildTreeLifecycleController.java:95)
    at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.fromBuildModel(DefaultBuildTreeLifecycleController.java:73)
    at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner.runClientAction(AbstractClientProvidedBuildActionRunner.java:43)
    at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner.run(ClientProvidedPhasedActionRunner.java:53)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:49)
    at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:65)
    at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:140)
    at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41)
    at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.lambda$execute$0(RootBuildLifecycleBuildActionExecutor.java:40)
    at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:122)
    at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:40)
    at org.gradle.internal.buildtree.InitDeprecationLoggingActionExecutor.execute(InitDeprecationLoggingActionExecutor.java:58)
    at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40)
    at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0(BuildTreeLifecycleBuildActionExecutor.java:65)
    at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:53)
    at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:65)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:61)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:57)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java:57)
    at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0(RunAsWorkerThreadBuildActionExecutor.java:36)
    at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249)
    at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109)
    at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:36)
    at org.gradle.tooling.internal.provider.continuous.ContinuousBuildActionExecutor.execute(ContinuousBuildActionExecutor.java:110)
    at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute(SubscribableBuildActionExecutor.java:64)
    at org.gradle.internal.session.DefaultBuildSessionContext.execute(DefaultBuildSessionContext.java:46)
    at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:100)
    at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:88)
    at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:69)
    at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:62)
    at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:41)
    at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:64)
    at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
    at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:50)
    at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:38)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
    at org.gradle.util.internal.Swapper.swap(Swapper.java:38)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:64)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
br3t3s commented 1 year ago

There was more work than expected. The 2.0RC1 is now released, and is compatible with Spring Boot 3

Etienne

Version isn't visible in gradle plugin repository. Still latest version is: Version 1.18.11 (latest) Created 04 April 2023.

Is there any special repository that I need to add to gradle project descriptor?

etienne-sf commented 1 year ago

The 2.0RC1 gradle plug-in has been released.

So it should work. But it doesn't, actually...

:(

From time to time, I must say the IT is boring...

xmlking commented 1 year ago

Thank you for the all the hard work , Java is old but tooling is still evolving :(

etienne-sf commented 1 year ago

The plugin publish was apparently somewhat successful: if I try to republish it, I get this error:

Execution failed for task ':publishPlugins'.
> Failed to post to server.
  Server responded with:
  Plugin: 'com.graphql_java_generator.graphql-gradle-plugin', version: '2.0RC1' exists already. It was created: 2023-04-15 11:02:34.923

But it is not available to use yet.

:(

etienne-sf commented 1 year ago

FYI, I submitted a bug on Gradle github issues, as this release really doesn't want to be seen on the gradle plugin portal... :(

br3t3s commented 1 year ago

FYI, I submitted a bug on Gradle github issues, as this release really doesn't want to be seen on the gradle plugin portal... :(

Maybe just bump version and release as new RC? I think overriding plugin version blockade is introduced for purpose in public repos beacause it prevents from potential abusement when someone re-take controll of plugin development and publish version affected by malware.

etienne-sf commented 1 year ago

Guess what... I already tried to republish it twice (with new version). But they didn't publish either. I'm now in contact with the gradle plugin support. So I guess this will be corrected.

etienne-sf commented 1 year ago

Hello,

The 2.0RC1 release of the Gradle plugin is now available. Take care that the plugin id has changed. You must now use:

plugins {
    id "com.graphql-java-generator.graphql-gradle-plugin" version "${graphQLPluginVersion}"
...
}

But generate the code with Spring Boot 3 will generate a NoClassDefFound exception, due to a class that has been removed in SpringBoot3.

Gradle is nice to use. But all the complex troubles I encountered are with it. It's internal architecture is much less reliable than the maven one.

I'll keep on search. But If anyone has hint to solve this, I'll be happy.

(a workaround would be to generate the code with a 2.7 version of spring boot dependencies, then execute the code against spring boot 3, but this generates another error :( )

etienne-sf commented 1 year ago

Hello,

I released the 2.0 GraphQL gradle plugin.

Please read either https://github.com/graphql-java-generator/graphql-maven-plugin-project/wiki/client_migrate_1-x_to_2-x#gradle-plugin or https://github.com/graphql-java-generator/graphql-maven-plugin-project/wiki/server_migrate_1-x_to_2-x#gradle-plugin before upgrading.

ghost commented 1 year ago

Hi @etienne-sf,

we were able to switch to the 2.0 version of the plugin with a Spring Boot 3 runtime, thanks for the final release!

However, what is still giving us trouble is the use of the spring gradle plugin in a 3.x version with the graphql plugin as it throws a class not found exception for the type NestedIOException - see below. As soon as I switch the spring gradle plugin version back to 2.7.5 it works, have you seen this already?

Thanks, Andreas plugins { id("org.springframework.boot") version "3.0.6" id("com.graphql-java-generator.graphql-gradle-plugin") version "2.0" }

Caused by: java.lang.NoClassDefFoundError: org/springframework/core/NestedIOException at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:323) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:748) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:93) at com.graphql_java_generator.gradleplugin.GenerateClientCodeTask.execute(GenerateClientCodeTask.java:75)

etienne-sf commented 1 year ago

Yes, there is a gradle issue, which doesn't properly separate the plug-in execution context.

Therefore, you have to update the build.gradle, like described here:

https://github.com/graphql-java-generator/graphql-maven-plugin-project/wiki/client_migrate_1-x_to_2-x#gradle-plugin

Or here:

https://github.com/graphql-java-generator/graphql-maven-plugin-project/wiki/server_migrate_1-x_to_2-x#gradle-plugin

ghost commented 1 year ago

Hi @etienne-sf Thanks for your quick response - I am not sure if your documentation helps here. Does this mean you are not planning to modify the dependencies of your 2.0-plugin-version to Spring 3?

etienne-sf commented 1 year ago

Doing that would prevent it to run with spring boot 2.x. I can't do that.

The other way is to publish a separate plug-in for spring boot 3. I find it very complex.

So I find that adding a ´buildscript´ bloc is an acceptable compromise.

What do you think ?

ghost commented 1 year ago

I understand your position but I thought the idea was to keep the 1.x stream of the plugin on Spring Boot 2.x and the 2.x stream of the plugin on Spring Boot 3.x (so essentially seperate plugins). If this is not the goal, ok but I think this will make the adoption of the plugin harder in the future when more people will move to Spring Boot 3.

etienne-sf commented 1 year ago

Hello,

You missed something, here:

The main impact of the 2.x branch is not Spring Boot 3. Spring Boot 3 is only a detail for the plug-in.

The main impact of the 2.0 branch is the use of spring-graphql. The impact of this on the plug-in are really big.

I know I must add some doc on this: it's what I'm currently working on.

etienne-sf commented 1 year ago

BTW, I'm working to better separate the dependencies. If this is successful, then it would be useless to add the ´buildscript´ bloc

holzerch commented 1 year ago

If the plugin is supposed to be compatible with Spring Boot 3 (Spring 6) you should not require classes in the classpath that were removed in Spring 6. (e.g. NestedIOException). Also requiring conflicting Spring versions in the classpath can cause a lot of problems.

So why not just remove all references to changed or removed code in Spring 6?

etienne-sf commented 1 year ago

The compatibility issue is not due to the plugin's code. It is only due to some spring dependencies, because Gradle doesn't isolate the plug-in execution from each other:

This creates a mix of spring framework 5 (for spring-context) and 6 (for spring-core).

I ´me working to isolate these dependencies. But to avoid the ´buildscript´ bloc, I'll perhaps be obliged to publish two version of the plug-in, with exactly the same code, but different dependency versions. :(

steven-sheehy commented 1 year ago

@etienne-sf I can't seem to make the provided workaround work in my project.

The normal way libraries or plugins handle support for both new and older versions of dependencies is to maintain multiple release trains. Spring Boot 3.1 will be released this week. GraphQL 1.2 was already released and bumps the GraphQL Java baseline to 20.x. Now might be a good time to create a 2.1 or 3.0 (whichever you feel is more appropriate) that raises the baseline for all these dependencies. Then you can continue to maintain the 2.0.x branch with releases for Spring Boot 2.7 as needed. What do you think?

etienne-sf commented 1 year ago

I've been thinking to this since you posted it.

There are good arguments.

But...

The maven plugin doesn't need this. Only the Gradle needs it, because Gradle doesn't properly separate the plugin execution classpath : like stated before, Gradle stated in all its documents that it's better than Maven. But Maven just works.

So, by doing this:

Or, to completely follow your idea, the maven plugin would also have two version, 2.x and 3.x, for exactly the same code.

Frankly, it's quite a mess.

But for Gradle users (and Gradle only), I guess I'l lhave to do this.

I'm still hoping to find a better solution. But if it doesn't work in next release, there will quickly be two Gradle plugin versions...

Etienne

etienne-sf commented 1 year ago

@etienne-sf I can't seem to make the provided workaround work in my project.

BTW, can you precise why you can't use the workaround ? What's happening ?

steven-sheehy commented 1 year ago

@etienne-sf I ended up figuring out a different way to make it work. My project uses Gradle Kotlin DSL with a buildSrc folder and the buildscript suggestion didn't help. I had to change buildSrc/build.gradle.kts like so:

dependencies {
    implementation("com.graphql-java-generator:graphql-gradle-plugin:2.0")
    implementation("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    implementation("org.springframework.boot:spring-boot-starter-graphql:${springBootVersion}")
}
etienne-sf commented 1 year ago

Ok, nice!

I guess there may have been a mismatch between these two ´buildSrc´. I'll add a note on that in the wiki.

Nevertheless, I'd like to find a simple solution for that. By simple, I mean without any ´buildSrc´.

ghost commented 1 year ago

@etienne-sf today, I got a dependabot update to version 2.1 of this plugin and as the release description contains a reference to Spring Boot 3.1.0 I tried my luck and updated the spring boot plugin also to 3.1.0 but now I get the error below. How's the progress with the 3.x version?

Caused by: java.lang.VerifyError: Bad type on operand stack Exception Details: Location: org/springframework/context/annotation/ConfigurationClassEnhancer$BeanFactoryAwareGeneratorStrategy.transform(Lorg/springframework/cglib/core/ClassGenerator;)Lorg/springframework/cglib/core/ClassGenerator; @15: invokespecial Reason: Type 'org/springframework/context/annotation/ConfigurationClassEnhancer$BeanFactoryAwareGeneratorStrategy$1' (current frame, stack[3]) is not assignable to 'org/springframework/cglib/transform/ClassTransformer' Current Frame: bci: @15 flags: { } locals: { 'org/springframework/context/annotation/ConfigurationClassEnhancer$BeanFactoryAwareGeneratorStrategy', 'org/springframework/cglib/core/ClassGenerator', 'org/springframework/context/annotation/ConfigurationClassEnhancer$BeanFactoryAwareGeneratorStrategy$1' } stack: { uninitialized 9, uninitialized 9, 'org/springframework/cglib/core/ClassGenerator', 'org/springframework/context/annotation/ConfigurationClassEnhancer$BeanFactoryAwareGeneratorStrategy$1' } Bytecode: 0000000: bb00 0a59 2ab7 001b 4dbb 001d 592b 2cb7 0000010: 0020 b0 at org.springframework.context.annotation.ConfigurationClassEnhancer.newEnhancer(ConfigurationClassEnhancer.java:126) at org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:109) at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:447) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:268) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:325) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:147) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:748) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:93) at com.graphql_java_generator.gradleplugin.GenerateClientCodeTask.execute(GenerateClientCodeTask.java:75)

etienne-sf commented 1 year ago

Adding the below block in the build.gradle stuff seems to still be necessary. I had to publish the plugin to test a Gradle variant selection. But it didn't work.

buildscript {
    repositories {
        // The GraphQL plugin depends on libraries that are available with maven
        mavenLocal()
        mavenCentral()
    }
    dependencies {
        classpath "org.springframework.boot:spring-boot-starter-graphql:3.1.0"
    }
}

I'll publish a graphql-gradle-plugin3 that will be the same code, but compiled with Spring 6 framework to avoid these issues (that are not internal to the plugin, but are due to Gradle mixing the dependencies). I'll keep on searching for a proper solution, because I don't like to give up.

ghost commented 1 year ago

@etienne-sf perfect, do you have an estimate for when the graphql-gradle-plugin3 version will be available?

etienne-sf commented 1 year ago

It should be delivered by the end of this week.

etienne-sf commented 1 year ago

I release a com.graphql-java-generator.graphql-gradle-plugin3 in version 2.1b. Take care that the runtime is still 2.1.

You'll find more info here

Etienne

ghost commented 1 year ago

It is finally working, Thanks @etienne-sf !

ghost commented 1 year ago

@etienne-sf just got a dependabot update from 2.1b to 2.1 for the graphql-gradle-plugin3 and now the incompatibility with the classnotfound exceptions is back, is this a known issue?

etienne-sf commented 1 year ago

No, it's not a known issue.

Can you reopen this issue, and post your build.gradle file ?

steven-sheehy commented 1 year ago

I got the Dependabot PR as well and it caused similar errors. But it's probably just the below issue mentioned in the wiki:

Due to an issue during the plugin publishing, the plugin3 version is 2.1b, whereas the runtime version is 2.1

Looks like the broken 2.1 version is in the Gradle Plugin Portal and I assume that Dependabot sorts 2.1 higher than 2.1b so it thinks there's an updated. I just closed the Dependabot PR. Ideally a non-standard b suffix wouldn't be used and a 2.1.1 or a 2.2 would have beeen released. But not a big deal and will sort itself out with the next release.

ghost commented 1 year ago

I agree with @steven-sheehy it seems as if the publishing of 2.1 now worked for some reason and is now considered as an update for 2.1b or did you intentionally publish a new 2.1 @etienne-sf ?

etienne-sf commented 1 year ago

I don't understand what you're saying.

There are currently two plugins:

For spring boot 3, you should be using the latter.

I feel it as too complicated. But I'd like to finish my current (little) dev before releasing a 2.1.1 version for maven and all gradle plugins (otherwise there would still be a different version for the runtime and the gradle3 plug-in, as the runtime is published with the maven plug-in)

Étienne

ghost commented 1 year ago

@etienne-sf what I'm saying is that as of now the gradle plugin for spring boot 3 (com.graphql-java-generator.graphql-gradle-plugin3) now exists in two versions 2.1 and 2.1b (see https://plugins.gradle.org/plugin/com.graphql-java-generator.graphql-gradle-plugin3/2.1 and screenshot below) and dependabot is considering 2.1 as newer than 2.1b, so as soon as you publish 2.1.1 for the com.graphql-java-generator.graphql-gradle-plugin3 it should be solved:

image
etienne-sf commented 1 year ago

In your screenshot, the 2.1 is not tagged as "latest", whereas the 2.1b is.

I published the 2.1, but there was a dependency issue, that triggered the ClassNotFoundException.

So, after, I published the 2.1b. And it's what is visible in the gradle plugins portal.

And yes, all this will be solved (and easier to use) with the 2.1.1 version.