graphql-java-generator / graphql-maven-plugin-project

graphql-maven-plugin is a Maven 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
118 stars 47 forks source link

Provide compatibility with spring 3 #170

Closed dpalmmna closed 1 year ago

dpalmmna commented 1 year ago

With arrival of spring 3, would it be possible to provide compatibility.

Incompatibilities with actual versions because of replacement of javax by jarkarta in spring 3.

dpalmmna commented 1 year ago

Attempted to solve locally unable to replace org.eclipse.jetty.websocket.websocket-client to org.eclipse.jetty.websocket.websocket-jakarta-client

etienne-sf commented 1 year ago

Yes I'll see that.

Initially, I wanted to move to Spring 3. But this change is too big.

I guess Spring 3 is a reasonable goal.

Étienne

etienne-sf commented 1 year ago

Hello,

After a quick check:

My plan is:

Etienne

AndyGee commented 1 year ago

Just to be clear, I'm sure you're talking about this right?:

Branch 1x = Spring 5.x + Spring-Boot 2.x Branch 2x = Spring 6.x + Spring-Boot 3.x

Andy.

etienne-sf commented 1 year ago

Hello,

It's about this.

My plan is to have :

The 2.x is currently working with Spring 5.x + Spring-Boot 2.x + spring-graphql I must finish the doc before delivering it.

Etienne

Crystark commented 1 year ago

Hello there. I'm really glad to see that this is being tackled. Do you have any idea as to when we could expect a 2.x release or pre-release to be available ? I'm working on this brand new project and I was hoping to use spring 3.x but it really depends on the graphql java generator. I'll be starting with Spring 2 as I don't really have a choice anyway but I was just wondering if I should plan for a change mid-project.

Thanks

etienne-sf commented 1 year ago

I think I'll release a Release Candidate version for the 2.x branch next week end.

It's not sure that this Release Candidate will be tested with Spring 3.x at this time, before I release it. I'll precise this on this thread.

ghost commented 1 year ago

@etienne-sf will you create a 2.x release candidate with Spring Boot 3 support for the gradle version of this plugin as well?

etienne-sf commented 1 year ago

Of course.

But to be clear, my plan is:

My objective is that the 2.0 is compatible with spring 3.0.

Étienne

etienne-sf commented 1 year ago

Hello

I released the 2.0RC1 yesterday, with Java 17 and Spring Boot 3 compatibility.

I'll publish an updated version of the plugin doc (and parameters) today or tomorrow. I'm working on the Gradle plugin, and it's a little more complex than expected. It should come in some days.

Etienne

etienne-sf commented 1 year ago

Hum, with some delay (I must have missed an error somewhere), the 2.0RC1 is now available for use with the maven plugin. Like stated before, some work is still needed for the Gradle plugin.

etienne-sf commented 1 year ago

There was more work than expected for the Gradle plugin. The 2.0RC1 is now released for it.

Etienne

ghost commented 1 year ago

@etienne-sf Thanks for releasing the 2.0RC1 version of the gradle plugin! Unfortunately, I cannot find this version in maven central https://mvnrepository.com/artifact/gradle.plugin.com.graphql-java-generator/graphql-gradle-plugin?repo=gradle-plugins whereas the maven plugin is available in 2.0RC1, can you please check why the binary release is not available?

etienne-sf commented 1 year ago

Yes, you're right.

When I published the 2.0RC1 release, the publishing process finished with a success.

But it appears that it actually failed. And I can not republish it, as this version still stays somewhere.

So I had to do a little evolution to publish a 2.0RC1bis version of the plug-in. It's ready. And I'll publish it, then test it on the gradle samples, before announcing it.

It's a pity that this process isn't really robust.

ghost commented 1 year ago

Hi @etienne-sf

today, I have tried out the 2.0RC1b version from the gradle plugin repository (https://plugins.gradle.org/plugin/com.graphql-java-generator.graphql-gradle-plugin/2.0RC1b) but when I try to run the generate task I get the NoClassDefFoundException copied below with Spring Boot 3.0.5 - are you aware of this problem?

Thanks!

Caused by: java.lang.NoClassDefFoundError: org/springframework/cglib/transform/ClassTransformer 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

Yes I am.

I'm working on it.

With the maven plug-in: no issue. Everything works fine.

With the gradle plug-in: it's a mess. Everywhere in their doc, the gradle team explains that their tool is better. But the reality is that maven just works. All the issues I encountered were with gradle.

I solved the issue. But I must first release a new version of the maven plug-in so that it works also for the Gradle plug-in. It's a matter of days.

sfat commented 1 year ago

@etienne-sf Do you have any updates on this? Also tried to use 2.0RC1b and we got the same exception: Caused by: java.lang.NoClassDefFoundError: org/springframework/cglib/transform/ClassTransformer

We are unable to upgrade to spring boot 3.x because of this issue

etienne-sf commented 1 year ago

Hello,

Did you take a look to this issue, and especially to this answer ?