Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Remove legacy modules #1995

Merged
merged 9 commits into from
Dec 11, 2024
Merged

Remove legacy modules #1995

merged 9 commits into from
Dec 11, 2024

Conversation

paulbakker
Copy link
Collaborator

@paulbakker paulbakker commented Aug 31, 2024

Preview branch removing all legacy modules. This will be merged in late 2024. From then on, the DGS/Spring GraphQL integration will be the only implementation.

Test with the Release Candidate

We published 10.0.0-rc.1 as the first Release Candidate based on this branch.
To test with the RC, add the following repository to your build.gradle (or Maven equivalent).

repositories {
 maven {
        name = "OSS Candidates"
        url = "https://artifacts-oss.netflix.net/artifactory/maven-oss-candidates"
    }
}

### Details of changes
The following modules are completely removed because they are replaced by Spring GraphQL. If you were already using the com.netflix.graphql.dgs:graphql-dgs-spring-graphql-starter (Spring GraphQL integration) you were already not using any of these modules.

Deleted modules:

  • graphql-dgs-spring-boot-oss-autoconfigure
  • graphql-dgs-spring-webmvc
  • graphql-dgs-spring-webmvc-autoconfigure
  • graphql-dgs-spring-boot-starter
  • graphql-dgs-example-java
  • graphql-dgs-example-java-webflux
  • graphql-dgs-subscriptions-websockets
  • graphql-dgs-subscriptions-websockets-autoconfigure
  • graphql-dgs-subscriptions-graphql-sse
  • graphql-dgs-subscriptions-graphql-sse-autoconfigure
  • graphql-dgs-subscriptions-sse
  • graphql-dgs-subscriptions-sse-autoconfigure
  • graphql-dgs-spring-webflux-autoconfigure
  • graphql-dgs-webflux-starter

Deleted classes:

  • DgsAutoConfiguration: Autoconfiguration classes have moved. This may break tests that are using @SpringBootTest(classes = {DgsAutoConfiguration.class, ...}, and should use @EnableDgsTest instead.
  • DefaultGraphQLClient: This is a long deprecated class that has been replaced by [CustomGraphQLClient, CustomReactiveGraphQLClient and WebClientGraphQLClient.
  • DefaultDgsReactiveQueryExecutor: There should be no user impact because its interface should be used instead.
  • DefaultDgsQueryExecutor: There should be no user impact because its interface should be used instead.

Other changes

  • Subscriptions over SSE in Spring GraphQL are using the newer, more official GraphQL over SSE RFC spec. The old spec is no longer supported by DGS.
  • If you are using SSESubscriptionGraphQLClient in tests to test your DGS server, switch to GraphqlSSESubscriptionGraphQLClient, which has the same interface, but uses the new protocol.
  • SSESubscriptionGraphQLClient can still be used to call into other services using the old protocol, but this client is now deprecated for removal in the future.
  • Note that Spring GraphQL serves subscriptions on the /graphql endpoint, not on the /subscriptions endpoint like DGS used to do.

@paulbakker
Copy link
Collaborator Author

@srinivasankavitha @kilink Preparing this branch for onboarding purposes. Not ready to merge yet, but it's a preview of things to come.
Note that I've disabled some client SSE/WS tests for now, need to replace some things in the setup with Spring GraphQL to get those to work.

@srinivasankavitha
Copy link
Contributor

Looks good to me. I've noticed quite a few projects that add graphql-dgs-spring-boot-starter as a dependency in their build.gradle files in addition to the starter. This is incorrect usage in any case. Calling it out explicitly so we are not surprised by breakages there.

@paulbakker paulbakker force-pushed the feature/legacy-module-removal branch from 0c9e524 to 1359c19 Compare December 3, 2024 20:25
@paulbakker paulbakker changed the title [WIP] Removing legacy modules. Disabled SSE/WS client tests for now Remove legacy modules Dec 3, 2024
@@ -1,5 +1,5 @@
/*
* Copyright 2023 Netflix, Inc.
* Copyright 2021 Netflix, Inc.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More curious than an actual comment, but why did the (c) get adjusted back in time? Should this be a SED to bump them up to 2024?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Weird, I have no idea. The copyright header comes from a profile in Intellij, which has $today.year as a variable. After this is merged with can do a clean up.

settings.gradle.kts Outdated Show resolved Hide resolved
@paulbakker paulbakker force-pushed the feature/legacy-module-removal branch from bb08e75 to b29d2e0 Compare December 10, 2024 22:47
@paulbakker paulbakker merged commit 62d589f into master Dec 11, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants