Skip to content

OpenAPI 3.2 Compatibility Layer + Java 17 Alignment and Parser Upgrade#4

Open
FelixCaceres17 wants to merge 4 commits into
apiaddicts:feature/openapi3132from
FelixCaceres17:feature/openapi3132
Open

OpenAPI 3.2 Compatibility Layer + Java 17 Alignment and Parser Upgrade#4
FelixCaceres17 wants to merge 4 commits into
apiaddicts:feature/openapi3132from
FelixCaceres17:feature/openapi3132

Conversation

@FelixCaceres17
Copy link
Copy Markdown

  • Upgrade runtime to Java 17 (Dockerfile openjdk base)
  • Bump swagger-parser from 2.1.19 to 2.1.41
  • Add OpenAPI 3.2 normalization layer in SerializedDataUtils
    • Normalizes 3.2 specs to 3.1-compatible structure before parsing
    • Transforms querystring parameter location to query
    • Remaps 3.2-specific fields to extension-safe keys
  • Improve SoapUI generation resilience
    • Support querystring parameter handling
    • Centralize and simplify readOnly HTTP method filtering
    • Gracefully skip unsupported HTTP methods with logging
  • Convert OpenAPI 3.2 tests from placeholder to concrete behavior
    • Add real 3.2 parsing and generation tests
    • Add querystring parameter compatibility test
  • Update documentation to reflect official 3.2 support strategy
    • OPENAPI_VERSIONS.md: 3.2 now marked as officially supported
    • README.md: Updated compatibility matrix and feature table

Impact: OpenAPI 3.2 specs can now be parsed and reliably converted to SoapUI projects via normalization layer, safer handling of edge-case parameter/method types, and clearer product messaging.

Closes: OpenAPI 3.2 support feature

- Upgrade runtime to Java 17 (Dockerfile openjdk base)
- Bump swagger-parser from 2.1.19 to 2.1.41
- Add OpenAPI 3.2 normalization layer in SerializedDataUtils
  * Normalizes 3.2 specs to 3.1-compatible structure before parsing
  * Transforms querystring parameter location to query
  * Remaps 3.2-specific fields to extension-safe keys
- Improve SoapUI generation resilience
  * Support querystring parameter handling
  * Centralize and simplify readOnly HTTP method filtering
  * Gracefully skip unsupported HTTP methods with logging
- Convert OpenAPI 3.2 tests from placeholder to concrete behavior
  * Add real 3.2 parsing and generation tests
  * Add querystring parameter compatibility test
- Update documentation to reflect official 3.2 support strategy
  * OPENAPI_VERSIONS.md: 3.2 now marked as officially supported
  * README.md: Updated compatibility matrix and feature table

Impact: OpenAPI 3.2 specs can now be parsed and reliably converted to SoapUI projects via normalization layer, safer handling of edge-case parameter/method types, and clearer product messaging.

Closes: OpenAPI 3.2 support feature
Copy link
Copy Markdown

@rafael-goterris rafael-goterris left a comment

Choose a reason for hiding this comment

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

In pom.xml update the version of openapi2soapui to 2.0.0

* Skip write operations (POST/PUT/PATCH/DELETE) if readOnly mode is enabled
* @param operations list of path operations
*/
private void setResourceMethods(RestResource restResource, Map<HttpMethod, Operation> operations) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

* @param pathName path name to find Resource
* @param pathItem instance of OpenAPI Path to iterate its Operations
*/
private void setMethodsRequests(String pathName, PathItem pathItem) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Comment thread pom.xml Outdated
Comment thread pom.xml Outdated
@@ -61,7 +61,7 @@

<springdoc.version>2.0.2</springdoc.version>
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Check which latest version of springdoc is compatible

FelixCaceres17 and others added 3 commits May 25, 2026 09:16
Co-authored-by: Rafael Goterris Perales <rafael.goterris@cloudappi.net>
- pom.xml: bump openapi2soapui to 2.0.0 and springdoc to 2.6.0 (Spring Boot 3.3 compatible)
- SoapUIProject.java: extract configureResourceMethod / configureMethodRequest helpers
  to reduce cognitive complexity (S3776) on setResourceMethods and setMethodsRequests
- SerializedDataUtils.java: use pattern matching for instanceof (S6201)
- OpenAPIVersionSupportTest.java: replace YAML string concatenations with text blocks (S6126)
- Rename configureResourceMethod -> setResourceMethod
- Rename configureMethodRequest -> setMethodRequest
- Rename applyRequestBodyContent -> setRequestBodyContent
- Add Javadoc to each new private helper to match the rest of the class
@sonarqubecloud
Copy link
Copy Markdown

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.

2 participants