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

Port Spring Web to RESTEasy Reactive #20195

Merged
merged 4 commits into from
Sep 20, 2021
Merged

Conversation

geoand
Copy link
Contributor

@geoand geoand commented Sep 16, 2021

This means that the Spring Web can now longer
be used with RESTEasy Classic which means
the loss of the following functionality:

  • XML support via the JAX-B extension
  • Support for Servlet types

The port however brings the following benefits:

  • Aligns with the move to make RESTEasy Reactive the default REST layer
  • Improves runtime performance
  • Allows up to better support this module as all the necessary code is owned by Quarkus instead of being split between Quarkus and RESTEasy Classic

This means that the Spring Web can now longer
be used with RESTEasy Classic which means
the loss of the following functionality:

* XML support via the JAX-B extension
* Support for Servlet types

The port however brings the following benefits:

* Aligns with the move to make RESTEasy Reactive the default REST layer
* Improves runtime performance
* Allows up to better support this module as all the necessary code is owned by Quarkus instead of being split between Quarkus and RESTEasy Classic
@quarkus-bot quarkus-bot bot added area/documentation area/rest area/spring Issues relating to the Spring integration labels Sep 16, 2021
@quarkus-bot
Copy link

quarkus-bot bot commented Sep 16, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building 956308b

Status Name Step Failures Logs Raw logs
Gradle Tests - JDK 11 Build Failures Logs Raw logs
Gradle Tests - JDK 11 Windows Build Failures Logs Raw logs
JVM Tests - JDK 11 Build Failures Logs Raw logs
JVM Tests - JDK 11 Windows Build Failures Logs Raw logs
JVM Tests - JDK 16 Build Failures Logs Raw logs

Full information is available in the Build summary check run.

Failures

⚙️ Gradle Tests - JDK 11 #

- Failing: integration-tests/gradle 

📦 integration-tests/gradle

io.quarkus.gradle.BeanInTestSourcesTest.testBasicMultiModuleBuild line 15 - More details - Source on GitHub

io.quarkus.gradle.KotlinGRPCProjectBuildTest.testBasicMultiModuleBuild line 15 - More details - Source on GitHub

io.quarkus.gradle.MultiModuleKotlinProjectBuildTest.testBasicMultiModuleBuild line 15 - More details - Source on GitHub

io.quarkus.gradle.MultiSourceProjectTest.shouldRunTest line 16 - More details - Source on GitHub

io.quarkus.gradle.devmode.MultiModuleKotlinProjectDevModeTest.main line 22 - More details - Source on GitHub


⚙️ Gradle Tests - JDK 11 Windows #

- Failing: integration-tests/gradle 

📦 integration-tests/gradle

io.quarkus.gradle.BeanInTestSourcesTest.testBasicMultiModuleBuild line 15 - More details - Source on GitHub

io.quarkus.gradle.KotlinGRPCProjectBuildTest.testBasicMultiModuleBuild line 15 - More details - Source on GitHub

io.quarkus.gradle.MultiModuleKotlinProjectBuildTest.testBasicMultiModuleBuild line 15 - More details - Source on GitHub

io.quarkus.gradle.MultiSourceProjectTest.shouldRunTest line 16 - More details - Source on GitHub

io.quarkus.gradle.devmode.MultiModuleKotlinProjectDevModeTest.main line 22 - More details - Source on GitHub


⚙️ JVM Tests - JDK 11 #

- Failing: extensions/smallrye-openapi/deployment 
! Skipped: docs extensions/agroal/deployment extensions/elytron-security-jdbc/deployment and 132 more

📦 extensions/smallrye-openapi/deployment

io.quarkus.smallrye.openapi.test.hotreload.DisplayOpenAPiEndpointInNotFoundExceptionPageTest.shouldDisplayOpenApiAndSwaggerUiEndpointsInNotFoundPage - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.hotreload.OpenApiHotReloadTest.testAddingAndDeletingEndpoint - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.hotreload.OpenApiHotReloadTest.testAddingAndUpdatingResource - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.AutoSecurityRequirementTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.AutoTagTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.BasicSecurityWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.ConfigMappingTest. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.DefaultContentTypeTest. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.JWTSecurityWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OIDCSecurityWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.Oauth2ImplicitSecurityWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiDynamicFilterTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiHttpRootDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiPathWithSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiPathWithoutSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiRuntimeFilterTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiStaticModelsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiStoreSchemaTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiWithResteasyPathHttpRootDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiWithResteasyPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.SwaggerAndOpenAPIWithCommonPrefixTest. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiHttpRootDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiPathWithSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiPathWithoutSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiStoreSchemaTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.SwaggerAndOpenAPIWithCommonPrefixTest. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiHttpRootDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiPathWithSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiPathWithoutSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiStoreSchemaTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.SwaggerAndOpenAPIWithCommonPrefixTest. - More details - Source on GitHub


⚙️ JVM Tests - JDK 11 Windows #

- Failing: extensions/smallrye-openapi/deployment 
! Skipped: docs extensions/agroal/deployment extensions/elytron-security-jdbc/deployment and 132 more

📦 extensions/smallrye-openapi/deployment

io.quarkus.smallrye.openapi.test.hotreload.DisplayOpenAPiEndpointInNotFoundExceptionPageTest.shouldDisplayOpenApiAndSwaggerUiEndpointsInNotFoundPage - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.hotreload.OpenApiHotReloadTest.testAddingAndDeletingEndpoint - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.hotreload.OpenApiHotReloadTest.testAddingAndUpdatingResource - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.AutoSecurityRequirementTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.AutoTagTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.BasicSecurityWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.ConfigMappingTest. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.DefaultContentTypeTest. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.JWTSecurityWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OIDCSecurityWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.Oauth2ImplicitSecurityWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiDynamicFilterTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiHttpRootDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiPathWithSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiPathWithoutSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiRuntimeFilterTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiStaticModelsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiStoreSchemaTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiWithResteasyPathHttpRootDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiWithResteasyPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.SwaggerAndOpenAPIWithCommonPrefixTest. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiHttpRootDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiPathWithSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiPathWithoutSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiStoreSchemaTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.SwaggerAndOpenAPIWithCommonPrefixTest. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiHttpRootDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiPathWithSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiPathWithoutSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiStoreSchemaTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.SwaggerAndOpenAPIWithCommonPrefixTest. - More details - Source on GitHub


⚙️ JVM Tests - JDK 16 #

- Failing: extensions/smallrye-openapi/deployment 
! Skipped: docs extensions/agroal/deployment extensions/elytron-security-jdbc/deployment and 132 more

📦 extensions/smallrye-openapi/deployment

io.quarkus.smallrye.openapi.test.hotreload.DisplayOpenAPiEndpointInNotFoundExceptionPageTest.shouldDisplayOpenApiAndSwaggerUiEndpointsInNotFoundPage - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.hotreload.OpenApiHotReloadTest.testAddingAndDeletingEndpoint - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.hotreload.OpenApiHotReloadTest.testAddingAndUpdatingResource - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.AutoSecurityRequirementTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.AutoTagTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.BasicSecurityWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.ConfigMappingTest. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.DefaultContentTypeTest. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.JWTSecurityWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OIDCSecurityWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.Oauth2ImplicitSecurityWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiDynamicFilterTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiHttpRootDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiPathWithSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiPathWithoutSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiRuntimeFilterTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiStaticModelsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiStoreSchemaTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiWithResteasyPathHttpRootDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.OpenApiWithResteasyPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.jaxrs.SwaggerAndOpenAPIWithCommonPrefixTest. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiHttpRootDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiPathWithSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiPathWithoutSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiStoreSchemaTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.OpenApiWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.spring.SwaggerAndOpenAPIWithCommonPrefixTest. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiHttpRootDefaultPathTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiPathWithSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiPathWithoutSegmentsTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiStoreSchemaTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.OpenApiWithConfigTestCase. - More details - Source on GitHub

io.quarkus.smallrye.openapi.test.vertx.SwaggerAndOpenAPIWithCommonPrefixTest. - More details - Source on GitHub

This is done to avoid having the OpenAPI test module
depend on both RESTEasy Classic and RESTEasy Reactive
@quarkus-bot
Copy link

quarkus-bot bot commented Sep 16, 2021

This workflow status is outdated as a new workflow run has been triggered.

Failing Jobs - Building 76768cd

Status Name Step Failures Logs Raw logs
Gradle Tests - JDK 11 Build Failures Logs Raw logs
Gradle Tests - JDK 11 Windows Build Failures Logs Raw logs

Full information is available in the Build summary check run.

Failures

⚙️ Gradle Tests - JDK 11 #

- Failing: integration-tests/gradle 

📦 integration-tests/gradle

io.quarkus.gradle.BeanInTestSourcesTest.testBasicMultiModuleBuild line 15 - More details - Source on GitHub

org.opentest4j.AssertionFailedError: 

expected: "SUCCESS"

io.quarkus.gradle.MultiModuleKotlinProjectBuildTest.testBasicMultiModuleBuild line 15 - More details - Source on GitHub

org.opentest4j.AssertionFailedError: 

expected: "SUCCESS"

io.quarkus.gradle.devmode.MultiModuleIncludedBuildTest.main line 24 - More details - Source on GitHub

java.lang.AssertionError: 

Expecting actual:

io.quarkus.gradle.devmode.MultiModuleKotlinProjectDevModeTest.main line 22 - More details - Source on GitHub

java.lang.AssertionError: 

Expecting actual:

⚙️ Gradle Tests - JDK 11 Windows #

- Failing: integration-tests/gradle 

📦 integration-tests/gradle

io.quarkus.gradle.BeanInTestSourcesTest.testBasicMultiModuleBuild line 15 - More details - Source on GitHub

org.opentest4j.AssertionFailedError: 

expected: "SUCCESS"

@geoand
Copy link
Contributor Author

geoand commented Sep 16, 2021

@glefloch the gradle test failures seem unrelated, no?

@glefloch
Copy link
Member

@geoand yes, they are not related to this PR.

@geoand
Copy link
Contributor Author

geoand commented Sep 16, 2021

Thanks for confirmation!

@quarkus-bot
Copy link

quarkus-bot bot commented Sep 16, 2021

Failing Jobs - Building 76768cd

Status Name Step Failures Logs Raw logs
Gradle Tests - JDK 11 Windows Build Failures Logs Raw logs

Full information is available in the Build summary check run.

Failures

⚙️ Gradle Tests - JDK 11 Windows #

- Failing: integration-tests/gradle 

📦 integration-tests/gradle

io.quarkus.gradle.devmode.BasicKotlinApplicationModuleDevModeTest.main line 18 - More details - Source on GitHub

org.awaitility.core.ConditionTimeoutException: Condition with lambda expression in io.quarkus.test.devmode.util.DevModeTestUtils that uses java.util.function.Supplier, java.util.function.Supplierjava.util.concurrent.atomic.AtomicReference, java.util.concurrent.atomic.AtomicReferencejava.lang.String, java.lang.Stringboolean was not fulfilled within 1 minutes.
	at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:166)
	at org.awaitility.core.CallableCondition.await(CallableCondition.java:78)

io.quarkus.gradle.devmode.MultiModuleIncludedBuildTest.main line 24 - More details - Source on GitHub

java.lang.AssertionError: 

Expecting actual:

Copy link
Contributor

@gastaldi gastaldi left a comment

Choose a reason for hiding this comment

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

Looks good! Awesome job! 🥳

@geoand
Copy link
Contributor Author

geoand commented Sep 20, 2021

@stuartwdouglas any objections to this?

Copy link
Member

@stuartwdouglas stuartwdouglas left a comment

Choose a reason for hiding this comment

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

LGTM, but I don't really know anything about Spring.

@geoand
Copy link
Contributor Author

geoand commented Sep 20, 2021

Sure, I just wanted to know whether you had any general objections :)

@geoand geoand merged commit 149d538 into quarkusio:main Sep 20, 2021
@quarkus-bot quarkus-bot bot added this to the 2.3 - main milestone Sep 20, 2021
@geoand geoand deleted the #19819-spring-web branch September 20, 2021 06:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants