Avoid generating uncompilable response body in Spring's API template - #8691

Open
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string
Open

Avoid generating uncompilable response body in Spring's API template#8691
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string

Conversation

@smasset

@smassetsmasset commented Sep 10, 2018

Copy link
Copy Markdown

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
  • Filed the PR against the correct branch: 3.0.0 branch for changes related to OpenAPI spec 3.0. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

If definitions start to get complicated, example response bodies can exceed Java compiler's limit for constant strings.

This PR addresses this issue by introducing and using two new lambdas to remove any unnecessary whitespace and (if still needed) to split the constant string into smaller compilable parts using a StringBuilder to merge them back again.

Fixes#9055

@smasset
smassetforce-pushed the long-example-string branch from e5bd6a1 to e202250CompareApril 17, 2019 04:40
@smasset

smasset commented Apr 17, 2019

Copy link
Copy Markdown
Author

Rebased against current master. Should fix #9055

Not sure why continuous-integration/appveyor/branch check is not running automatically

@smasset
smassetforce-pushed the long-example-string branch from e202250 to ceb93f9CompareApril 20, 2019 03:23
@smasset

Copy link
Copy Markdown
Author

Rebased against current master

@smasset

Copy link
Copy Markdown
Author

I can confirm this fixes #9055.

With provided example, only removing duplicate white space in generated example string made the class compilable.

Duplicating the billingAccounts property in CustomerAccount definition to a total of 10 instances illustrates the use of StringBuilder.

@smasset

Copy link
Copy Markdown
Author

Attaching ZIP archive with API interfaces generated by version 2.3.1 of swagger-codegen and by a snapshot with my proposed fix (with vanilla sample provided in #9055 and with extra array properties to demonstrate the use of StringBuilder)

CustomerAccountsApi.zip

@smasset
smassetforce-pushed the long-example-string branch from ceb93f9 to 3a262c3CompareApril 29, 2019 21:02
@smasset

smasset commented Apr 29, 2019

Copy link
Copy Markdown
Author

@frantuma, rebased this against latest master, is there anything missing in this PR ?

@drej1, can you confirm this fixes #9055 ?

@drej1

Copy link
Copy Markdown

Hi @smasset , I appologize, I missed the notification. We checked your solution out and it's working... is it possible to merge it into the upcoming version?
Thanks

@smasset

Copy link
Copy Markdown
Author

Hey @drej1. I've just rebased against latest master and didn't get any conflict.
Let's hope all checks pass and if so feel free to merge it for the next release.

@smasset

Copy link
Copy Markdown
Author

All checks passed. @frantuma can you include this PR in the next release ?

@drej1

Copy link
Copy Markdown

@smasset thank you very much!
@frantuma any idea when this will be released? thanks :)

@drej1

Copy link
Copy Markdown

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks

@diyfr

Copy link
Copy Markdown
Contributor

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks
-> @cbornet@wing328

@drej1

Copy link
Copy Markdown

@cbornet@wing328 any updates on this???

@drej1

drej1 commented Feb 2, 2022

Copy link
Copy Markdown

@cbornet@wing328@diyfr or anybody... this is a pull request from 4 years ago...

@Xerocry

Xerocry commented Feb 16, 2023

Copy link
Copy Markdown

@cbornet@wing328@diyfr
Will this ever be available? Been 5 years already..

@Xerocry

Copy link
Copy Markdown

@cbornet@wing328@diyfr@frantuma@smasset
Guys, at least give some comment, please..

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry This pull request 2903 doesn't solved this issue ?
Included in V4.2.2

Difference between Swagger Codegen and OpenAPI Generator

@Xerocry

Copy link
Copy Markdown

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no?
Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

@diyfr

Copy link
Copy Markdown
Contributor

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no? Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

Check, it's present on master branch

@diyfr

diyfr commented Apr 28, 2023

Copy link
Copy Markdown
Contributor

@wing328@frantuma you can close this pull request

@Xerocry

Xerocry commented Apr 28, 2023

Copy link
Copy Markdown

Check, it's present on master branch

Correct me if I'm wrong but there are only lambdaEscapeDoubleQuote and lambdaRemoveLineBreak in master, no lambdaTrimWhitespace*lambdaSplitString*

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry I suggest you propose a new PR. this one is based on an obsolete branch

@smasset

smasset commented May 2, 2023

Copy link
Copy Markdown
Author

@diyfr I've just created a new PR #12136 cherry-picking all commits from this one without any conflict.
Can you approve the workflows there ? I can also rebase this PR's branch against latest master if you prefer.
Let me know what is more convenient for you

Sign up for freeto 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.

[JAVA SPRING] error: constant string too long

4 participants

@smasset@drej1@diyfr@Xerocry
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Avoid generating uncompilable response body in Spring's API template - #8691

Open
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string
Open

Avoid generating uncompilable response body in Spring's API template#8691
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string

Conversation

@smasset

@smassetsmasset commented Sep 10, 2018

Copy link
Copy Markdown

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
  • Filed the PR against the correct branch: 3.0.0 branch for changes related to OpenAPI spec 3.0. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

If definitions start to get complicated, example response bodies can exceed Java compiler's limit for constant strings.

This PR addresses this issue by introducing and using two new lambdas to remove any unnecessary whitespace and (if still needed) to split the constant string into smaller compilable parts using a StringBuilder to merge them back again.

Fixes#9055

@smasset
smassetforce-pushed the long-example-string branch from e5bd6a1 to e202250CompareApril 17, 2019 04:40
@smasset

smasset commented Apr 17, 2019

Copy link
Copy Markdown
Author

Rebased against current master. Should fix #9055

Not sure why continuous-integration/appveyor/branch check is not running automatically

@smasset
smassetforce-pushed the long-example-string branch from e202250 to ceb93f9CompareApril 20, 2019 03:23
@smasset

Copy link
Copy Markdown
Author

Rebased against current master

@smasset

Copy link
Copy Markdown
Author

I can confirm this fixes #9055.

With provided example, only removing duplicate white space in generated example string made the class compilable.

Duplicating the billingAccounts property in CustomerAccount definition to a total of 10 instances illustrates the use of StringBuilder.

@smasset

Copy link
Copy Markdown
Author

Attaching ZIP archive with API interfaces generated by version 2.3.1 of swagger-codegen and by a snapshot with my proposed fix (with vanilla sample provided in #9055 and with extra array properties to demonstrate the use of StringBuilder)

CustomerAccountsApi.zip

@smasset
smassetforce-pushed the long-example-string branch from ceb93f9 to 3a262c3CompareApril 29, 2019 21:02
@smasset

smasset commented Apr 29, 2019

Copy link
Copy Markdown
Author

@frantuma, rebased this against latest master, is there anything missing in this PR ?

@drej1, can you confirm this fixes #9055 ?

@drej1

Copy link
Copy Markdown

Hi @smasset , I appologize, I missed the notification. We checked your solution out and it's working... is it possible to merge it into the upcoming version?
Thanks

@smasset

Copy link
Copy Markdown
Author

Hey @drej1. I've just rebased against latest master and didn't get any conflict.
Let's hope all checks pass and if so feel free to merge it for the next release.

@smasset

Copy link
Copy Markdown
Author

All checks passed. @frantuma can you include this PR in the next release ?

@drej1

Copy link
Copy Markdown

@smasset thank you very much!
@frantuma any idea when this will be released? thanks :)

@drej1

Copy link
Copy Markdown

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks

@diyfr

Copy link
Copy Markdown
Contributor

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks
-> @cbornet@wing328

@drej1

Copy link
Copy Markdown

@cbornet@wing328 any updates on this???

@drej1

drej1 commented Feb 2, 2022

Copy link
Copy Markdown

@cbornet@wing328@diyfr or anybody... this is a pull request from 4 years ago...

@Xerocry

Xerocry commented Feb 16, 2023

Copy link
Copy Markdown

@cbornet@wing328@diyfr
Will this ever be available? Been 5 years already..

@Xerocry

Copy link
Copy Markdown

@cbornet@wing328@diyfr@frantuma@smasset
Guys, at least give some comment, please..

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry This pull request 2903 doesn't solved this issue ?
Included in V4.2.2

Difference between Swagger Codegen and OpenAPI Generator

@Xerocry

Copy link
Copy Markdown

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no?
Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

@diyfr

Copy link
Copy Markdown
Contributor

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no? Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

Check, it's present on master branch

@diyfr

diyfr commented Apr 28, 2023

Copy link
Copy Markdown
Contributor

@wing328@frantuma you can close this pull request

@Xerocry

Xerocry commented Apr 28, 2023

Copy link
Copy Markdown

Check, it's present on master branch

Correct me if I'm wrong but there are only lambdaEscapeDoubleQuote and lambdaRemoveLineBreak in master, no lambdaTrimWhitespace*lambdaSplitString*

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry I suggest you propose a new PR. this one is based on an obsolete branch

@smasset

smasset commented May 2, 2023

Copy link
Copy Markdown
Author

@diyfr I've just created a new PR #12136 cherry-picking all commits from this one without any conflict.
Can you approve the workflows there ? I can also rebase this PR's branch against latest master if you prefer.
Let me know what is more convenient for you

Sign up for freeto 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.

[JAVA SPRING] error: constant string too long

4 participants

@smasset@drej1@diyfr@Xerocry
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Avoid generating uncompilable response body in Spring's API template - #8691

Open
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string
Open

Avoid generating uncompilable response body in Spring's API template#8691
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string

Conversation

@smasset

@smassetsmasset commented Sep 10, 2018

Copy link
Copy Markdown

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
  • Filed the PR against the correct branch: 3.0.0 branch for changes related to OpenAPI spec 3.0. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

If definitions start to get complicated, example response bodies can exceed Java compiler's limit for constant strings.

This PR addresses this issue by introducing and using two new lambdas to remove any unnecessary whitespace and (if still needed) to split the constant string into smaller compilable parts using a StringBuilder to merge them back again.

Fixes#9055

@smasset
smassetforce-pushed the long-example-string branch from e5bd6a1 to e202250CompareApril 17, 2019 04:40
@smasset

smasset commented Apr 17, 2019

Copy link
Copy Markdown
Author

Rebased against current master. Should fix #9055

Not sure why continuous-integration/appveyor/branch check is not running automatically

@smasset
smassetforce-pushed the long-example-string branch from e202250 to ceb93f9CompareApril 20, 2019 03:23
@smasset

Copy link
Copy Markdown
Author

Rebased against current master

@smasset

Copy link
Copy Markdown
Author

I can confirm this fixes #9055.

With provided example, only removing duplicate white space in generated example string made the class compilable.

Duplicating the billingAccounts property in CustomerAccount definition to a total of 10 instances illustrates the use of StringBuilder.

@smasset

Copy link
Copy Markdown
Author

Attaching ZIP archive with API interfaces generated by version 2.3.1 of swagger-codegen and by a snapshot with my proposed fix (with vanilla sample provided in #9055 and with extra array properties to demonstrate the use of StringBuilder)

CustomerAccountsApi.zip

@smasset
smassetforce-pushed the long-example-string branch from ceb93f9 to 3a262c3CompareApril 29, 2019 21:02
@smasset

smasset commented Apr 29, 2019

Copy link
Copy Markdown
Author

@frantuma, rebased this against latest master, is there anything missing in this PR ?

@drej1, can you confirm this fixes #9055 ?

@drej1

Copy link
Copy Markdown

Hi @smasset , I appologize, I missed the notification. We checked your solution out and it's working... is it possible to merge it into the upcoming version?
Thanks

@smasset

Copy link
Copy Markdown
Author

Hey @drej1. I've just rebased against latest master and didn't get any conflict.
Let's hope all checks pass and if so feel free to merge it for the next release.

@smasset

Copy link
Copy Markdown
Author

All checks passed. @frantuma can you include this PR in the next release ?

@drej1

Copy link
Copy Markdown

@smasset thank you very much!
@frantuma any idea when this will be released? thanks :)

@drej1

Copy link
Copy Markdown

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks

@diyfr

Copy link
Copy Markdown
Contributor

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks
-> @cbornet@wing328

@drej1

Copy link
Copy Markdown

@cbornet@wing328 any updates on this???

@drej1

drej1 commented Feb 2, 2022

Copy link
Copy Markdown

@cbornet@wing328@diyfr or anybody... this is a pull request from 4 years ago...

@Xerocry

Xerocry commented Feb 16, 2023

Copy link
Copy Markdown

@cbornet@wing328@diyfr
Will this ever be available? Been 5 years already..

@Xerocry

Copy link
Copy Markdown

@cbornet@wing328@diyfr@frantuma@smasset
Guys, at least give some comment, please..

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry This pull request 2903 doesn't solved this issue ?
Included in V4.2.2

Difference between Swagger Codegen and OpenAPI Generator

@Xerocry

Copy link
Copy Markdown

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no?
Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

@diyfr

Copy link
Copy Markdown
Contributor

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no? Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

Check, it's present on master branch

@diyfr

diyfr commented Apr 28, 2023

Copy link
Copy Markdown
Contributor

@wing328@frantuma you can close this pull request

@Xerocry

Xerocry commented Apr 28, 2023

Copy link
Copy Markdown

Check, it's present on master branch

Correct me if I'm wrong but there are only lambdaEscapeDoubleQuote and lambdaRemoveLineBreak in master, no lambdaTrimWhitespace*lambdaSplitString*

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry I suggest you propose a new PR. this one is based on an obsolete branch

@smasset

smasset commented May 2, 2023

Copy link
Copy Markdown
Author

@diyfr I've just created a new PR #12136 cherry-picking all commits from this one without any conflict.
Can you approve the workflows there ? I can also rebase this PR's branch against latest master if you prefer.
Let me know what is more convenient for you

Sign up for freeto 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.

[JAVA SPRING] error: constant string too long

4 participants

@smasset@drej1@diyfr@Xerocry
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Avoid generating uncompilable response body in Spring's API template - #8691

Open
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string
Open

Avoid generating uncompilable response body in Spring's API template#8691
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string

Conversation

@smasset

@smassetsmasset commented Sep 10, 2018

Copy link
Copy Markdown

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
  • Filed the PR against the correct branch: 3.0.0 branch for changes related to OpenAPI spec 3.0. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

If definitions start to get complicated, example response bodies can exceed Java compiler's limit for constant strings.

This PR addresses this issue by introducing and using two new lambdas to remove any unnecessary whitespace and (if still needed) to split the constant string into smaller compilable parts using a StringBuilder to merge them back again.

Fixes#9055

@smasset
smassetforce-pushed the long-example-string branch from e5bd6a1 to e202250CompareApril 17, 2019 04:40
@smasset

smasset commented Apr 17, 2019

Copy link
Copy Markdown
Author

Rebased against current master. Should fix #9055

Not sure why continuous-integration/appveyor/branch check is not running automatically

@smasset
smassetforce-pushed the long-example-string branch from e202250 to ceb93f9CompareApril 20, 2019 03:23
@smasset

Copy link
Copy Markdown
Author

Rebased against current master

@smasset

Copy link
Copy Markdown
Author

I can confirm this fixes #9055.

With provided example, only removing duplicate white space in generated example string made the class compilable.

Duplicating the billingAccounts property in CustomerAccount definition to a total of 10 instances illustrates the use of StringBuilder.

@smasset

Copy link
Copy Markdown
Author

Attaching ZIP archive with API interfaces generated by version 2.3.1 of swagger-codegen and by a snapshot with my proposed fix (with vanilla sample provided in #9055 and with extra array properties to demonstrate the use of StringBuilder)

CustomerAccountsApi.zip

@smasset
smassetforce-pushed the long-example-string branch from ceb93f9 to 3a262c3CompareApril 29, 2019 21:02
@smasset

smasset commented Apr 29, 2019

Copy link
Copy Markdown
Author

@frantuma, rebased this against latest master, is there anything missing in this PR ?

@drej1, can you confirm this fixes #9055 ?

@drej1

Copy link
Copy Markdown

Hi @smasset , I appologize, I missed the notification. We checked your solution out and it's working... is it possible to merge it into the upcoming version?
Thanks

@smasset

Copy link
Copy Markdown
Author

Hey @drej1. I've just rebased against latest master and didn't get any conflict.
Let's hope all checks pass and if so feel free to merge it for the next release.

@smasset

Copy link
Copy Markdown
Author

All checks passed. @frantuma can you include this PR in the next release ?

@drej1

Copy link
Copy Markdown

@smasset thank you very much!
@frantuma any idea when this will be released? thanks :)

@drej1

Copy link
Copy Markdown

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks

@diyfr

Copy link
Copy Markdown
Contributor

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks
-> @cbornet@wing328

@drej1

Copy link
Copy Markdown

@cbornet@wing328 any updates on this???

@drej1

drej1 commented Feb 2, 2022

Copy link
Copy Markdown

@cbornet@wing328@diyfr or anybody... this is a pull request from 4 years ago...

@Xerocry

Xerocry commented Feb 16, 2023

Copy link
Copy Markdown

@cbornet@wing328@diyfr
Will this ever be available? Been 5 years already..

@Xerocry

Copy link
Copy Markdown

@cbornet@wing328@diyfr@frantuma@smasset
Guys, at least give some comment, please..

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry This pull request 2903 doesn't solved this issue ?
Included in V4.2.2

Difference between Swagger Codegen and OpenAPI Generator

@Xerocry

Copy link
Copy Markdown

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no?
Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

@diyfr

Copy link
Copy Markdown
Contributor

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no? Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

Check, it's present on master branch

@diyfr

diyfr commented Apr 28, 2023

Copy link
Copy Markdown
Contributor

@wing328@frantuma you can close this pull request

@Xerocry

Xerocry commented Apr 28, 2023

Copy link
Copy Markdown

Check, it's present on master branch

Correct me if I'm wrong but there are only lambdaEscapeDoubleQuote and lambdaRemoveLineBreak in master, no lambdaTrimWhitespace*lambdaSplitString*

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry I suggest you propose a new PR. this one is based on an obsolete branch

@smasset

smasset commented May 2, 2023

Copy link
Copy Markdown
Author

@diyfr I've just created a new PR #12136 cherry-picking all commits from this one without any conflict.
Can you approve the workflows there ? I can also rebase this PR's branch against latest master if you prefer.
Let me know what is more convenient for you

Sign up for freeto 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.

[JAVA SPRING] error: constant string too long

4 participants

@smasset@drej1@diyfr@Xerocry
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Avoid generating uncompilable response body in Spring's API template - #8691

Open
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string
Open

Avoid generating uncompilable response body in Spring's API template#8691
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string

Conversation

@smasset

@smassetsmasset commented Sep 10, 2018

Copy link
Copy Markdown

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
  • Filed the PR against the correct branch: 3.0.0 branch for changes related to OpenAPI spec 3.0. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

If definitions start to get complicated, example response bodies can exceed Java compiler's limit for constant strings.

This PR addresses this issue by introducing and using two new lambdas to remove any unnecessary whitespace and (if still needed) to split the constant string into smaller compilable parts using a StringBuilder to merge them back again.

Fixes#9055

@smasset
smassetforce-pushed the long-example-string branch from e5bd6a1 to e202250CompareApril 17, 2019 04:40
@smasset

smasset commented Apr 17, 2019

Copy link
Copy Markdown
Author

Rebased against current master. Should fix #9055

Not sure why continuous-integration/appveyor/branch check is not running automatically

@smasset
smassetforce-pushed the long-example-string branch from e202250 to ceb93f9CompareApril 20, 2019 03:23
@smasset

Copy link
Copy Markdown
Author

Rebased against current master

@smasset

Copy link
Copy Markdown
Author

I can confirm this fixes #9055.

With provided example, only removing duplicate white space in generated example string made the class compilable.

Duplicating the billingAccounts property in CustomerAccount definition to a total of 10 instances illustrates the use of StringBuilder.

@smasset

Copy link
Copy Markdown
Author

Attaching ZIP archive with API interfaces generated by version 2.3.1 of swagger-codegen and by a snapshot with my proposed fix (with vanilla sample provided in #9055 and with extra array properties to demonstrate the use of StringBuilder)

CustomerAccountsApi.zip

@smasset
smassetforce-pushed the long-example-string branch from ceb93f9 to 3a262c3CompareApril 29, 2019 21:02
@smasset

smasset commented Apr 29, 2019

Copy link
Copy Markdown
Author

@frantuma, rebased this against latest master, is there anything missing in this PR ?

@drej1, can you confirm this fixes #9055 ?

@drej1

Copy link
Copy Markdown

Hi @smasset , I appologize, I missed the notification. We checked your solution out and it's working... is it possible to merge it into the upcoming version?
Thanks

@smasset

Copy link
Copy Markdown
Author

Hey @drej1. I've just rebased against latest master and didn't get any conflict.
Let's hope all checks pass and if so feel free to merge it for the next release.

@smasset

Copy link
Copy Markdown
Author

All checks passed. @frantuma can you include this PR in the next release ?

@drej1

Copy link
Copy Markdown

@smasset thank you very much!
@frantuma any idea when this will be released? thanks :)

@drej1

Copy link
Copy Markdown

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks

@diyfr

Copy link
Copy Markdown
Contributor

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks
-> @cbornet@wing328

@drej1

Copy link
Copy Markdown

@cbornet@wing328 any updates on this???

@drej1

drej1 commented Feb 2, 2022

Copy link
Copy Markdown

@cbornet@wing328@diyfr or anybody... this is a pull request from 4 years ago...

@Xerocry

Xerocry commented Feb 16, 2023

Copy link
Copy Markdown

@cbornet@wing328@diyfr
Will this ever be available? Been 5 years already..

@Xerocry

Copy link
Copy Markdown

@cbornet@wing328@diyfr@frantuma@smasset
Guys, at least give some comment, please..

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry This pull request 2903 doesn't solved this issue ?
Included in V4.2.2

Difference between Swagger Codegen and OpenAPI Generator

@Xerocry

Copy link
Copy Markdown

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no?
Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

@diyfr

Copy link
Copy Markdown
Contributor

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no? Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

Check, it's present on master branch

@diyfr

diyfr commented Apr 28, 2023

Copy link
Copy Markdown
Contributor

@wing328@frantuma you can close this pull request

@Xerocry

Xerocry commented Apr 28, 2023

Copy link
Copy Markdown

Check, it's present on master branch

Correct me if I'm wrong but there are only lambdaEscapeDoubleQuote and lambdaRemoveLineBreak in master, no lambdaTrimWhitespace*lambdaSplitString*

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry I suggest you propose a new PR. this one is based on an obsolete branch

@smasset

smasset commented May 2, 2023

Copy link
Copy Markdown
Author

@diyfr I've just created a new PR #12136 cherry-picking all commits from this one without any conflict.
Can you approve the workflows there ? I can also rebase this PR's branch against latest master if you prefer.
Let me know what is more convenient for you

Sign up for freeto 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.

[JAVA SPRING] error: constant string too long

4 participants

@smasset@drej1@diyfr@Xerocry
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Avoid generating uncompilable response body in Spring's API template - #8691

Open
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string
Open

Avoid generating uncompilable response body in Spring's API template#8691
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string

Conversation

@smasset

@smassetsmasset commented Sep 10, 2018

Copy link
Copy Markdown

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
  • Filed the PR against the correct branch: 3.0.0 branch for changes related to OpenAPI spec 3.0. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

If definitions start to get complicated, example response bodies can exceed Java compiler's limit for constant strings.

This PR addresses this issue by introducing and using two new lambdas to remove any unnecessary whitespace and (if still needed) to split the constant string into smaller compilable parts using a StringBuilder to merge them back again.

Fixes#9055

@smasset
smassetforce-pushed the long-example-string branch from e5bd6a1 to e202250CompareApril 17, 2019 04:40
@smasset

smasset commented Apr 17, 2019

Copy link
Copy Markdown
Author

Rebased against current master. Should fix #9055

Not sure why continuous-integration/appveyor/branch check is not running automatically

@smasset
smassetforce-pushed the long-example-string branch from e202250 to ceb93f9CompareApril 20, 2019 03:23
@smasset

Copy link
Copy Markdown
Author

Rebased against current master

@smasset

Copy link
Copy Markdown
Author

I can confirm this fixes #9055.

With provided example, only removing duplicate white space in generated example string made the class compilable.

Duplicating the billingAccounts property in CustomerAccount definition to a total of 10 instances illustrates the use of StringBuilder.

@smasset

Copy link
Copy Markdown
Author

Attaching ZIP archive with API interfaces generated by version 2.3.1 of swagger-codegen and by a snapshot with my proposed fix (with vanilla sample provided in #9055 and with extra array properties to demonstrate the use of StringBuilder)

CustomerAccountsApi.zip

@smasset
smassetforce-pushed the long-example-string branch from ceb93f9 to 3a262c3CompareApril 29, 2019 21:02
@smasset

smasset commented Apr 29, 2019

Copy link
Copy Markdown
Author

@frantuma, rebased this against latest master, is there anything missing in this PR ?

@drej1, can you confirm this fixes #9055 ?

@drej1

Copy link
Copy Markdown

Hi @smasset , I appologize, I missed the notification. We checked your solution out and it's working... is it possible to merge it into the upcoming version?
Thanks

@smasset

Copy link
Copy Markdown
Author

Hey @drej1. I've just rebased against latest master and didn't get any conflict.
Let's hope all checks pass and if so feel free to merge it for the next release.

@smasset

Copy link
Copy Markdown
Author

All checks passed. @frantuma can you include this PR in the next release ?

@drej1

Copy link
Copy Markdown

@smasset thank you very much!
@frantuma any idea when this will be released? thanks :)

@drej1

Copy link
Copy Markdown

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks

@diyfr

Copy link
Copy Markdown
Contributor

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks
-> @cbornet@wing328

@drej1

Copy link
Copy Markdown

@cbornet@wing328 any updates on this???

@drej1

drej1 commented Feb 2, 2022

Copy link
Copy Markdown

@cbornet@wing328@diyfr or anybody... this is a pull request from 4 years ago...

@Xerocry

Xerocry commented Feb 16, 2023

Copy link
Copy Markdown

@cbornet@wing328@diyfr
Will this ever be available? Been 5 years already..

@Xerocry

Copy link
Copy Markdown

@cbornet@wing328@diyfr@frantuma@smasset
Guys, at least give some comment, please..

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry This pull request 2903 doesn't solved this issue ?
Included in V4.2.2

Difference between Swagger Codegen and OpenAPI Generator

@Xerocry

Copy link
Copy Markdown

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no?
Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

@diyfr

Copy link
Copy Markdown
Contributor

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no? Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

Check, it's present on master branch

@diyfr

diyfr commented Apr 28, 2023

Copy link
Copy Markdown
Contributor

@wing328@frantuma you can close this pull request

@Xerocry

Xerocry commented Apr 28, 2023

Copy link
Copy Markdown

Check, it's present on master branch

Correct me if I'm wrong but there are only lambdaEscapeDoubleQuote and lambdaRemoveLineBreak in master, no lambdaTrimWhitespace*lambdaSplitString*

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry I suggest you propose a new PR. this one is based on an obsolete branch

@smasset

smasset commented May 2, 2023

Copy link
Copy Markdown
Author

@diyfr I've just created a new PR #12136 cherry-picking all commits from this one without any conflict.
Can you approve the workflows there ? I can also rebase this PR's branch against latest master if you prefer.
Let me know what is more convenient for you

Sign up for freeto 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.

[JAVA SPRING] error: constant string too long

4 participants

@smasset@drej1@diyfr@Xerocry
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Avoid generating uncompilable response body in Spring's API template - #8691

Open
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string
Open

Avoid generating uncompilable response body in Spring's API template#8691
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string

Conversation

@smasset

@smassetsmasset commented Sep 10, 2018

Copy link
Copy Markdown

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
  • Filed the PR against the correct branch: 3.0.0 branch for changes related to OpenAPI spec 3.0. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

If definitions start to get complicated, example response bodies can exceed Java compiler's limit for constant strings.

This PR addresses this issue by introducing and using two new lambdas to remove any unnecessary whitespace and (if still needed) to split the constant string into smaller compilable parts using a StringBuilder to merge them back again.

Fixes#9055

@smasset
smassetforce-pushed the long-example-string branch from e5bd6a1 to e202250CompareApril 17, 2019 04:40
@smasset

smasset commented Apr 17, 2019

Copy link
Copy Markdown
Author

Rebased against current master. Should fix #9055

Not sure why continuous-integration/appveyor/branch check is not running automatically

@smasset
smassetforce-pushed the long-example-string branch from e202250 to ceb93f9CompareApril 20, 2019 03:23
@smasset

Copy link
Copy Markdown
Author

Rebased against current master

@smasset

Copy link
Copy Markdown
Author

I can confirm this fixes #9055.

With provided example, only removing duplicate white space in generated example string made the class compilable.

Duplicating the billingAccounts property in CustomerAccount definition to a total of 10 instances illustrates the use of StringBuilder.

@smasset

Copy link
Copy Markdown
Author

Attaching ZIP archive with API interfaces generated by version 2.3.1 of swagger-codegen and by a snapshot with my proposed fix (with vanilla sample provided in #9055 and with extra array properties to demonstrate the use of StringBuilder)

CustomerAccountsApi.zip

@smasset
smassetforce-pushed the long-example-string branch from ceb93f9 to 3a262c3CompareApril 29, 2019 21:02
@smasset

smasset commented Apr 29, 2019

Copy link
Copy Markdown
Author

@frantuma, rebased this against latest master, is there anything missing in this PR ?

@drej1, can you confirm this fixes #9055 ?

@drej1

Copy link
Copy Markdown

Hi @smasset , I appologize, I missed the notification. We checked your solution out and it's working... is it possible to merge it into the upcoming version?
Thanks

@smasset

Copy link
Copy Markdown
Author

Hey @drej1. I've just rebased against latest master and didn't get any conflict.
Let's hope all checks pass and if so feel free to merge it for the next release.

@smasset

Copy link
Copy Markdown
Author

All checks passed. @frantuma can you include this PR in the next release ?

@drej1

Copy link
Copy Markdown

@smasset thank you very much!
@frantuma any idea when this will be released? thanks :)

@drej1

Copy link
Copy Markdown

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks

@diyfr

Copy link
Copy Markdown
Contributor

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks
-> @cbornet@wing328

@drej1

Copy link
Copy Markdown

@cbornet@wing328 any updates on this???

@drej1

drej1 commented Feb 2, 2022

Copy link
Copy Markdown

@cbornet@wing328@diyfr or anybody... this is a pull request from 4 years ago...

@Xerocry

Xerocry commented Feb 16, 2023

Copy link
Copy Markdown

@cbornet@wing328@diyfr
Will this ever be available? Been 5 years already..

@Xerocry

Copy link
Copy Markdown

@cbornet@wing328@diyfr@frantuma@smasset
Guys, at least give some comment, please..

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry This pull request 2903 doesn't solved this issue ?
Included in V4.2.2

Difference between Swagger Codegen and OpenAPI Generator

@Xerocry

Copy link
Copy Markdown

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no?
Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

@diyfr

Copy link
Copy Markdown
Contributor

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no? Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

Check, it's present on master branch

@diyfr

diyfr commented Apr 28, 2023

Copy link
Copy Markdown
Contributor

@wing328@frantuma you can close this pull request

@Xerocry

Xerocry commented Apr 28, 2023

Copy link
Copy Markdown

Check, it's present on master branch

Correct me if I'm wrong but there are only lambdaEscapeDoubleQuote and lambdaRemoveLineBreak in master, no lambdaTrimWhitespace*lambdaSplitString*

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry I suggest you propose a new PR. this one is based on an obsolete branch

@smasset

smasset commented May 2, 2023

Copy link
Copy Markdown
Author

@diyfr I've just created a new PR #12136 cherry-picking all commits from this one without any conflict.
Can you approve the workflows there ? I can also rebase this PR's branch against latest master if you prefer.
Let me know what is more convenient for you

Sign up for freeto 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.

[JAVA SPRING] error: constant string too long

4 participants

@smasset@drej1@diyfr@Xerocry
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Avoid generating uncompilable response body in Spring's API template - #8691

Open
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string
Open

Avoid generating uncompilable response body in Spring's API template#8691
smasset wants to merge 4 commits into
swagger-api:masterfrom
smasset:long-example-string

Conversation

@smasset

@smassetsmasset commented Sep 10, 2018

Copy link
Copy Markdown

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
  • Filed the PR against the correct branch: 3.0.0 branch for changes related to OpenAPI spec 3.0. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

If definitions start to get complicated, example response bodies can exceed Java compiler's limit for constant strings.

This PR addresses this issue by introducing and using two new lambdas to remove any unnecessary whitespace and (if still needed) to split the constant string into smaller compilable parts using a StringBuilder to merge them back again.

Fixes#9055

@smasset
smassetforce-pushed the long-example-string branch from e5bd6a1 to e202250CompareApril 17, 2019 04:40
@smasset

smasset commented Apr 17, 2019

Copy link
Copy Markdown
Author

Rebased against current master. Should fix #9055

Not sure why continuous-integration/appveyor/branch check is not running automatically

@smasset
smassetforce-pushed the long-example-string branch from e202250 to ceb93f9CompareApril 20, 2019 03:23
@smasset

Copy link
Copy Markdown
Author

Rebased against current master

@smasset

Copy link
Copy Markdown
Author

I can confirm this fixes #9055.

With provided example, only removing duplicate white space in generated example string made the class compilable.

Duplicating the billingAccounts property in CustomerAccount definition to a total of 10 instances illustrates the use of StringBuilder.

@smasset

Copy link
Copy Markdown
Author

Attaching ZIP archive with API interfaces generated by version 2.3.1 of swagger-codegen and by a snapshot with my proposed fix (with vanilla sample provided in #9055 and with extra array properties to demonstrate the use of StringBuilder)

CustomerAccountsApi.zip

@smasset
smassetforce-pushed the long-example-string branch from ceb93f9 to 3a262c3CompareApril 29, 2019 21:02
@smasset

smasset commented Apr 29, 2019

Copy link
Copy Markdown
Author

@frantuma, rebased this against latest master, is there anything missing in this PR ?

@drej1, can you confirm this fixes #9055 ?

@drej1

Copy link
Copy Markdown

Hi @smasset , I appologize, I missed the notification. We checked your solution out and it's working... is it possible to merge it into the upcoming version?
Thanks

@smasset

Copy link
Copy Markdown
Author

Hey @drej1. I've just rebased against latest master and didn't get any conflict.
Let's hope all checks pass and if so feel free to merge it for the next release.

@smasset

Copy link
Copy Markdown
Author

All checks passed. @frantuma can you include this PR in the next release ?

@drej1

Copy link
Copy Markdown

@smasset thank you very much!
@frantuma any idea when this will be released? thanks :)

@drej1

Copy link
Copy Markdown

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks

@diyfr

Copy link
Copy Markdown
Contributor

Hi @diyfr, can you or somebody from the team check this PR and include it into the next release of 2.x (and also 3.x)?
Thanks
-> @cbornet@wing328

@drej1

Copy link
Copy Markdown

@cbornet@wing328 any updates on this???

@drej1

drej1 commented Feb 2, 2022

Copy link
Copy Markdown

@cbornet@wing328@diyfr or anybody... this is a pull request from 4 years ago...

@Xerocry

Xerocry commented Feb 16, 2023

Copy link
Copy Markdown

@cbornet@wing328@diyfr
Will this ever be available? Been 5 years already..

@Xerocry

Copy link
Copy Markdown

@cbornet@wing328@diyfr@frantuma@smasset
Guys, at least give some comment, please..

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry This pull request 2903 doesn't solved this issue ?
Included in V4.2.2

Difference between Swagger Codegen and OpenAPI Generator

@Xerocry

Copy link
Copy Markdown

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no?
Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

@diyfr

Copy link
Copy Markdown
Contributor

@diyfr Maybe I misunderstood something but that is a fix for OpenApi generator, not swagger codegen, no? Sadly I can't switch cause of complex structure openapi plugin is running out of space and it would be great to have fix in swagger-codegen too :)

Check, it's present on master branch

@diyfr

diyfr commented Apr 28, 2023

Copy link
Copy Markdown
Contributor

@wing328@frantuma you can close this pull request

@Xerocry

Xerocry commented Apr 28, 2023

Copy link
Copy Markdown

Check, it's present on master branch

Correct me if I'm wrong but there are only lambdaEscapeDoubleQuote and lambdaRemoveLineBreak in master, no lambdaTrimWhitespace*lambdaSplitString*

@diyfr

Copy link
Copy Markdown
Contributor

@Xerocry I suggest you propose a new PR. this one is based on an obsolete branch

@smasset

smasset commented May 2, 2023

Copy link
Copy Markdown
Author

@diyfr I've just created a new PR #12136 cherry-picking all commits from this one without any conflict.
Can you approve the workflows there ? I can also rebase this PR's branch against latest master if you prefer.
Let me know what is more convenient for you

Sign up for freeto 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.

[JAVA SPRING] error: constant string too long

4 participants

@smasset@drej1@diyfr@Xerocry